如何通过绝对路径链接指定目录下的.lib静态库(CMake)
直接链接指定路径下的静态库(.lib)到CMake可执行程序
当然可以直接链接这个绝对路径下的example_lib.lib静态库,不需要复杂的库构建配置,直接通过CMake的核心命令就能完成链接操作,具体步骤如下:
- 先定义你的可执行程序目标(替换成你的实际源文件):
add_executable(my_executable main.cpp)
- 直接将静态库的绝对路径传给链接命令:
可以直接把完整路径写在target_link_libraries里,也可以先定义变量存储路径,方便后续维护:
# 方式1:直接写入完整路径 target_link_libraries(my_executable PRIVATE "C:/vcpkg/installer/x86-windows-static/lib/example_lib.lib") # 方式2:先定义变量再调用 set(EXAMPLE_STATIC_LIB "C:/vcpkg/installer/x86-windows-static/lib/example_lib.lib") target_link_libraries(my_executable PRIVATE ${EXAMPLE_STATIC_LIB})
注意事项
- 路径分隔符要用正斜杠
/或者双反斜杠\\,避免CMake解析路径时出现错误 - 如果
example_lib.lib依赖其他库(比如vcpkg静态库常依赖的MSVC运行时库),需要确保你的CMake配置和该库的编译模式匹配,比如设置静态运行时:
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
- 这种直接指定绝对路径的方式简单直接,但如果后续库路径变动,需要手动修改CMake代码;如果希望更灵活的查找逻辑,可以用
find_library命令,但对于你的需求,直接指定路径完全足够
内容的提问来源于stack exchange,提问作者pman
相关产品推荐
相关产品推荐

