ein*_*ica 9 cmake build-dependencies
我正在编译一个二进制文件,target_link_libraries()出于各种原因,我想在两个不同的命令中添加它的依赖库。
我的命令如下所示:
target_link_libraries(my_prog PRIVATE foo bar)
target_link_libraries(my_prog baz)
Run Code Online (Sandbox Code Playgroud)
我得到错误:
The keyword signature for target_link_libraries has already been used with
the target "my_prog". All uses of target_link_libraries with a target
must be either all-keyword or all-plain.
The uses of the keyword signature are here:
* tests/CMakeLists.txt:10 (target_link_libraries)
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我该怎么办?
ein*_*ica 20
您的使用target_link_libraries()确实有问题,因为它涉及此命令的两种不同“风格”,传统的和较新的。
在一种用途中,您指定依赖项是PRIVATE; 另一方面,您不指定任何内容。这是不能接受的:你可以指定PUBLIC/ PRIVATE/INTERFACE为所有的元素,或者没有。
所以,你可以修正你CMakeLists.txt的说法:
target_link_libraries(my_prog foo bar)
target_link_libraries(my_prog baz)
Run Code Online (Sandbox Code Playgroud)
或者
target_link_libraries(my_prog PRIVATE foo bar)
target_link_libraries(my_prog PRIVATE baz)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7504 次 |
| 最近记录: |