服务器建设网站软件,怎样在百度打广告,快速建设网站服务,哈尔滨网站建设吧这篇文章阐述如何添加第三方库 文章目录 包含目录和依赖库注意事项target_link_libraries 基本用法#xff1a;修饰词#xff1a;PUBLIC、PRIVATE、INTERFACE 其他注意事项#xff1a;optimized 和 debug 配置标识#xff1a;示例#xff1a; 包含目录和依赖库
把上一篇…这篇文章阐述如何添加第三方库 文章目录 包含目录和依赖库注意事项target_link_libraries 基本用法修饰词PUBLIC、PRIVATE、INTERFACE 其他注意事项optimized 和 debug 配置标识示例 包含目录和依赖库
把上一篇文章的库工程加进来 把下面的东西放在应用程序的cmake中
# 第三方库的包含目录
target_include_directories(${EXECUTABLE_NAME} PUBLIC E:/workspace/cmake_demo/simple_demo/module/install/include)# lib库的路径
SET(LINK_LIBRARY optimized E:/workspace/cmake_demo/simple_demo/module/install/Lib/Release/MYLIB_x64_msvc.libdebug E:/workspace/cmake_demo/simple_demo/module/install/Lib/Debug/MYLIB_x64d_msvc.lib)# 添加依赖库
target_link_libraries(${EXECUTABLE_NAME} PUBLIC ${LINK_LIBRARY})在应用程序中调用库中的接口
#includeiostream
#includeadd.h
int main(){std::couthello cmake\n add(1, 2);return 0;
}注意事项
target_link_libraries 是 CMake 中用于指定目标例如可执行文件或库依赖的库的命令。而 PUBLIC 则是一个关键字用于将依赖项的属性传递给依赖项的消费者。
target_link_libraries 基本用法
target_link_libraries(target_name library_name)这条命令表示 target_name 目标依赖于 library_name 库。你可以使用这个命令多次以指定 target_name 的所有依赖项。
修饰词
PUBLIC、PRIVATE、INTERFACE
PUBLIC 表示这个库的接口头文件等会传递给 target_name 和 target_name 的依赖项。PRIVATE 表示这个库的接口仅供 target_name 使用而不会传递给 target_name 的依赖项。INTERFACE 是指这个库的接口不会传递给 target_name但会传递给 target_name 的依赖项。
其他注意事项 命名约定 在 target_link_libraries 中使用的库名称通常是不带前缀 lib 和文件扩展名的。CMake 会根据平台添加正确的前缀和后缀。 依赖项的传递 使用 PUBLIC、PRIVATE 和 INTERFACE 修饰词可以更精细地控制依赖项的传递。 变量替代 你也可以使用变量来代替直接的库名。
set(MY_LIBRARIES my_lib1 my_lib2)
target_link_libraries(my_executable PRIVATE ${MY_LIBRARIES})target_link_libraries 提供了灵活的方式来管理目标之间的依赖关系允许你清晰地指定哪些库对哪些目标可见。 抱歉忽略了你的问题。在 CMake 中target_link_libraries 命令允许你在不同配置如 Debug、Release下链接不同版本的库文件。对于 MSVC 编译器optimized 和 debug 是两个常见的配置标识用于区分 Release 和 Debug 版本的库。
optimized 和 debug 配置标识
optimized: 表示 Release 版本即优化过的版本适用于正式发布。debug: 表示 Debug 版本包含调试信息适用于开发和调试阶段。
示例
# 添加一个库
add_library(my_lib STATIC my_lib.cpp)# 添加一个可执行文件它依赖于 my_lib 库
add_executable(my_executable main.cpp)# 链接库区分 Release 和 Debug 版本
target_link_libraries(my_executabledebug my_lib_d # 调试版本的库文件optimized my_lib # Release 版本的库文件
)在这个示例中my_lib 是 Release 版本的库文件my_lib_d 是 Debug 版本的库文件。根据构建类型CMake 会自动选择合适的版本。
除了 optimized 和 debug还有一些其他配置标识例如 general、maxsize、minsizerel 等可以根据需要选择合适的标识。这些标识的具体含义和用法可以查阅 CMake 官方文档。