当我尝试使用
add_library(libname SHARED IMPORTED)
set_property(TARGET libname PROPERTY IMPORTED_LOCATION /<foldername>/<sub-foldername>/lib")cmake大喊:
CMake警告(dev) at /CMakeLists.txt:28 (target_link_libraries):无法为目标"libname“指定链接库,该链接库不是由该项目构建的。 CMake不支持这一点,但它过去常常不小心工作,并且允许兼容。 没有设置策略CMP0016 :如果只有参数不是目标,则target_link_libraries()报告错误。运行"cmake --help-policy CMP0016“以获取策略细节。使用cmake_policy命令设置策略并取消此警告。此警告是针对项目开发人员的。使用-Wno-dev来抑制它。
如果这是真的,在我的构建树中的某个地方将库包含到另一个项目中的另一个最佳方法是什么。我有一个库设置,另一个地方有可执行文件,将使用这些库。阅读cmake文档,感觉这是最好的前进方式,但它似乎是一个支离破碎的部分,正在得到支持。
发布于 2013-12-21 11:00:56
Cannot specify link libraries for target "libname" which is not built by this project
当您对某些目标使用target_link_libraries时,您指定了如何构建它,但是导入的库已经是构建了。CMake告诉你..。
将导入的目标链接到可执行文件的示例:
add_library(boo SHARED IMPORTED)
set_target_properties(boo PROPERTIES IMPORTED_LOCATION "/path/to/boo/library")
add_executable(foo foo.cpp)
target_link_libraries(foo boo)注:使用导入目标
发布于 2016-06-08 22:12:44
当我试图将Poco C++ libPocoFoundation.so库导入到我的项目中时,我得到了与navderm相同的错误,在尝试了不同的解决方案之后,我设法找到了一个对我有用的解决方案:
cmake_minimum_required(VERSION 3.5)
project(MyProject)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
add_library(PocoLib SHARED IMPORTED GLOBAL)
# It's important to specify the full path to the library you want to import
set_target_properties(PocoLib PROPERTIES IMPORTED_LOCATION "/usr/local/lib/Poco_1.7.2/lib/libPocoFoundation.so")
# create my executable
set(EXEC_SOURCE_FILES main.cpp)
add_executable(MyProject ${EXEC_SOURCE_FILES})
target_link_libraries(MyProject PocoLib)https://stackoverflow.com/questions/15813746
复制相似问题