Cmake-target_link_libraries
来源:互联网 发布:本科大学java专业课程 编辑:程序博客网 时间:2024/06/05 11:12
CMD#75: target_link_libraries 将给定的库链接到一个目标上。
target_link_libraries(< target> [item1 [item2 […]]] [[debug|optimized|general] < item>] …)
为给定的目标设置连接时使用的库或者标志(flags)。如果一个库名字与工程中的另外一个目标相匹配,一个依赖关系会自动添加到构建系统中来,这样就可以在链接目标之前,保证正在被链接的库是最新的。以“-”开始,但不是“-l”或“-framework”的那些项,将会被当作链接器标志来处理。
关键字“debug”,“optimized”或者“general” 表示紧随关键字之后的库仅仅会被用到相应的构建配置上。“debug”关键字对应于调试配置(或者,如果全局属性DEBUG_CONFIGURATIONS被设置的话,就是DEBUG_CONFIGURATIONS中的名字所指定的配置)。“optimized”关键字对应于所有其他的配置类型。“general”关键字对应于所有的配置,并且纯粹是可选的(它是默认配置,可以省略)。通过创建并链接到导入库目标,可以对每种配置规则进行更细致的粒度控制。更多内容参见add_library命令的IMPORTED模式。
默认时,库之间的依赖性是可传递的。当这个目标被链接到其他目标上时,那么链接到这个目标上的库也会出现在其他目标的链接依赖上。参见LINK_INTERFACE_LIBRARIES属性的相关文档,其中有关于如何覆盖一个目标的链接依赖性传递设置的介绍。
target_link_libraries(< target> LINK_INTERFACE_LIBRARIES [[debug|optimized|general] ] …)
对于LINK_INTERFACE_LIBRARIES模式,它将会把库附加在LINK_INTERFACE_LIBRARIES以及LINK_INTERFACE_LIBRARIES在不同配置下的等价目标属性,而不是用这些库去链接。指定为“debug”的库将会被附加到LINK_INTERFACE_LIBRARIES_DEBUG属性(或者是在DEBUG_CONFIGURATIONS全局属性中列出的配置,如果DEBUG_CONFIGURATIONS被设置的话)。指定为“optimized”库将会被附加到LINK_INTERFACE_LIBRARIES属性上。指定为“general”的库(或者没有任何关键字的库),将会被当做即被指定为“debug”又被指定为“optimized”对待。
库之间的依赖图通常是非循环图(DAG),但是如果出现互相依赖的静态库,CMake会允许依赖图中包含循环依赖(强连通分支)。当其它目标链接到这些库中的一个时,CMake会重复整个连通分支。例如,代码:
add_library(A STATIC a.c)add_library(B STATIC b.c)target_link_libraries(A B)target_link_libraries(B A)add_executable(main main.c)target_link_libraries(main A)
将“main”链接到了“A B A B”。(虽然通常一次重复就足够了,但是病态对象文件以及符号排布可能需要多次重复。你可以通过在上一次target_link_libraries调用中手动重复该分支来处理这种情况。不过,如果两个归档文件确实是如此紧密的相互关联,它们可能会被合并为一个单一的归档文件。)
- Cmake-target_link_libraries
- CMake命令target_link_libraries链接库的顺序
- CMake link_directories, LINK_LIBRARIES, target_link_libraries使用总结
- 在CMake时添加-ldl等编译选项:TARGET_LINK_LIBRARIES
- add_library,target_link_libraries,set_target_properties,target_link_libraries使用联系
- link_directories, LINK_LIBRARIES, target_link_libraries使用总结
- link_directories, LINK_LIBRARIES, target_link_libraries使用总结
- link_directories, LINK_LIBRARIES, target_link_libraries使用总结
- link_directories, LINK_LIBRARIES, target_link_libraries使用总结
- cmake
- cMAKE
- cmake
- CMake
- Cmake
- cmake
- cmake
- CMake
- cmake
- 页面的实时刷新所用的技术
- PHP学习笔记-PHP与Web页面的交互1
- 判断键盘可见性的一种方法
- GitHub如何删除工程
- 求最大公约数
- Cmake-target_link_libraries
- Android 实现侧边栏之状态栏颜色适配
- linux socket的IO多路复用简单例子(二)
- Effective C++--条款07:为多态基类声明virtual析构函数
- jacascript字符串的操作方法
- cpp的json的用法举例
- Android应用开发SharedPreferences存储数据的使用方法
- Codeforces Round #356 (Div. 1)D. Bear and Tower of Cubes【pair使用】
- Hive 没有 not in 解决方案