首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cmake不支持导入库?

cmake不支持导入库?
EN

Stack Overflow用户
提问于 2013-04-04 14:14:22
回答 2查看 23.1K关注 0票数 6

当我尝试使用

代码语言:javascript
运行
复制
 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文档,感觉这是最好的前进方式,但它似乎是一个支离破碎的部分,正在得到支持。

EN

回答 2

Stack Overflow用户

发布于 2013-12-21 11:00:56

Cannot specify link libraries for target "libname" which is not built by this project

当您对某些目标使用target_link_libraries时,您指定了如何构建它,但是导入的库已经是构建了。CMake告诉你..。

将导入的目标链接到可执行文件的示例:

代码语言:javascript
运行
复制
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)

注:使用导入目标

票数 12
EN

Stack Overflow用户

发布于 2016-06-08 22:12:44

当我试图将Poco C++ libPocoFoundation.so库导入到我的项目中时,我得到了与navderm相同的错误,在尝试了不同的解决方案之后,我设法找到了一个对我有用的解决方案:

代码语言:javascript
运行
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15813746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档