2 sk609 king sk609_king 于 2016.03.08 14:24 提问

CMake中TARGET_LINK_LIBRARIES的问题

cmake_minimum_required(VERSION 2.8)
PROJECT(hellomain)
INCLUDE_DIRECTORIES(/usr/local/include/hello)
TARGET_LINK_LIBRARIES(hellomain hello)
ADD_EXECUTABLE(hellomain main.cpp)

其中
TARGET_LINK_LIBRARIES(hellomain hello)
这句话的意思不就是为hellomain这个工程添加libhello.so的动态链接库吗?
为什么会出现
Cannot specify link libraries for target "hellomain" which is not built by
this project.
这样的错误?

1个回答

sk609_king
sk609_king   2016.03.08 14:32
已采纳

我知道了
ADD_EXECUTABLE(hellomain main.cpp)
要写在
INCLUDE_DIRECTORIES(/usr/local/include/hello)
TARGET_LINK_LIBRARIES(hellomain hello)
前面

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
link_directories, LINK_LIBRARIES, target_link_libraries使用总结
总结了include_directories,link_directories,link_libraries和target_link_libraries的作用,并以实例说明它们在CMakeLists.txt中的角色。尤其是后面三个参数,比较相似,容易弄混。INCLUDE_DIRECTORIES(添加头文件目录)它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的作用(这里特指c++。c和Java中用法类似)。
CMake link_directories, LINK_LIBRARIES, target_link_libraries使用总结
MARK: http://blog.csdn.net/woyebuzhidao888/article/details/44236999
cmake学习笔记之add_library、target_link_libraries和link_directories
cmake是Linux(这里默认是Ubuntu系统)下常使用的编译C++的工具,而使用cmake就需要先在CmakeLists.txt文件中对编译规则进行。这里介绍常用的三种指令add_library、target_link_libraries和link_directories,该笔记主要参考了cmake官网给的教程,如有需要请访问以下网址: https://cmake.org/cmake/he
CMake命令target_link_libraries链接库的顺序
target_link_libraries里库文件的顺序符合gcc链接顺序的规则,即被依赖的库放在依赖它的库的后面,比如 target_link_libraries(hello A B.a C.so) 在上面的命令中,libA.so可能依赖于libB.a和libC.so,如果顺序有错,链接时会报错。还有一点,B.a会告诉CMake优先使用静态链接库libB.a,C.so会告诉CMake优先使用
Cmake-target_link_libraries
CMD#75: target_link_libraries 将给定的库链接到一个目标上。target_link_libraries(< target> [item1 [item2 […]]] [[debug|optimized|general] < item>] …)   为给定的目标设置连接时使用的库或者标志(flags)。如果一个库名字与工程中的另外一个目标相匹配,一个依赖关系会自动添加到构
add_library,target_link_libraries,set_target_properties,target_link_libraries使用联系
折腾了半下午,终于知道这个货是怎么个关系了。在此写下记录,希望遇到同样问题的同学,不要再次浪费时间了。 首先我是在Linux环境下 先列出我的CmakeLists.txt 注意,在CmakeLists.txt 里,注释用的是# project(Camera_sugan)         #工程名字 cmake_minimum_required(VERSION 2.6)  
target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> <lib>...)
target_link_libraries( ... [PRIVATE|PUBLIC|INTERFACE> ...] ...]) 作用: PUBLIC,PRIVATE和INTERFACE关键字能够实现在一条命令中同时指定链接依赖和链接接口。 参数: 1.若使用PUBLIC,库文件和目标文件会被链接到接口并成为它的一部分。 2.若使用PRIVATE,库文件和目标文件只会被链接到接口但不会
cmake 解决错误:Cannot specify link libraries for target
最近研究cmake来配置Qt的编译方法,写好了CMakeLists.txt通过编译后却无法链接成功;由于用的是mac osx,还以为是不同系统链接库出了问题;检查他给出的路径(变量${QT_LIBRARIES}的内容)为: /Volumes/Design/LocalSoft/Qt/Desktop/Qt/4.8.1/gcc/lib/QtGui.framework/Volumes/Desig
cmake中链接系统标准库
如果要在编译时添加例如 -lpthread -lmath这类通用的库 只需直接在CMakeLists.txt中添加 LINK_LIBRARIES(标准库名称) 或 TARGET_LINK_LIBRARIES(编译目标名称target 标准库名称) 其中标准库名称就是-l后面的库名称,如 math,pthread等 编译目标名称就是ADD_EXECUTABLE的第一个参数
cmake 添加头文件目录,链接动态、静态库
 罗列一下cmake常用的命令。 CMake支持大写、小写、混合大小写的命令。   1. 添加头文件目录INCLUDE_DIRECTORIES 语法: include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...]) 它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_PATH变量的