c++ - CMake 链接顺序和 LINK_INTERFACE_MULTIPLICITY

标签 c++ cmake static-linking

我正在尝试将静态库与协作 cmake 项目中的测试用例相关联。我的理解是我可以使用 link_interface_multiplicity绕过有时以错误顺序列出的库的选项。这样做的正确方法是什么?我是 cmake 的新手,文档有点令人生畏......

最佳答案

您可以使用 set_target_properties为此命令。例如,如果您有两个 CMake 目标,MyLibAMyLibB(通过 add_library 调用添加),那么您可以设置 LINK_INTERFACE_MULTIPLICITY 通过执行以下操作将这两个值都设置为 3:

set_target_properties(MyLibA MyLibB PROPERTIES LINK_INTERFACE_MULTIPLICITY 3)

请注意,虽然 CMake 命令、函数和宏不区分大小写,但变量 区分大小写。因此,您应该始终使用 LINK_INTERFACE_MULTIPLICITYLINK_INTERFACE_MULTIPLICITY_DEBUGLINK_INTERFACE_MULTIPLICITY_RELEASE 等,而不是 link_interface_multiplicity

关于c++ - CMake 链接顺序和 LINK_INTERFACE_MULTIPLICITY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16473382/

相关文章:

c++ - 编译之间 C 函数符号的地址是否常量

c++ - 如何通过使用for循环c++将一个 vector 放入另一个 vector 来组织一个 vector

c++ - Qt c++ 我的程序使用静态链接还是动态链接?

c++ - 如何在编译时重复连接字符串?

c++ - 编译器警告转换

cmake - 如何在自定义 CMake 命令中包含文字双引号?

c++ - 错误 LNK1104 : cannot open file 'Debug\MyProjectLib.lib'

c++ - 如何将使用 ExternalProject_Add 安装的库添加到目标包括

c - 如果链接了某些库,可能只包含标题?

c - 使用 CMake 编译为静态库时出现问题