也许我根本找不到它,但我想在我的项目中添加一些代码(libunwind在这里找到http://www.nongnu.org/libunwind/download.html)
这个库没有附带CMakeLists.txt文件,当我尝试包含它时,cmake抱怨这个事实。现在我只是将libunwind目录添加到我的外部代码中,并在我的主CMakeLists.txt中添加了一个引用
任何输入都会很棒。
答案 0 :(得分:4)
处理库有两种选择:
如果您已经下载并且能够构建和安装它,您可以尝试在CMAKE内部稍后找到它(如果是Boost)并链接到您的目标:
find_package(Boost COMPONENTS date_time系统序列化线程program_options文件系统unit_test_framework regex chrono REQUIRED)
if(NOT Boost_FOUND) 消息(FATAL_ERROR"无法找到提升!") endif(NOT Boost_FOUND)
消息(STATUS" boost found")
include_directories($ {Boost_INCLUDE_DIRS}) link_directories($ {Boost_LIBRARY_DIRS})
target_link_libraries(YOUR_TARGET_NAME $ {Boost_LIBRARIES})
您可以将外部库源添加为独立目标,并使用像这样的smth来构建它:
设置(来源 async_waiter.h async_waiter_impl.h async_waiter_impl.cpp )
add_library(async_waiter $ {sources})
以及稍后使用以下链接定位的链接:
target_link_libraries(YOU_TARGET_NAME async_waiter)
答案 1 :(得分:2)
如果您希望每次与项目一起构建它,最简单的方法是:
然而,这很少需要,大多数时候你应该只构建一次库并将其链接为任何其他外部库。