2016-12-20 157 views
1

或许我根本就看不到它,但我想一些代码添加到我的项目(在这里http://www.nongnu.org/libunwind/download.html libunwind找到)
本库没有拿出一个的CMakeLists.txt文件,当我试图包含它cmake抱怨这个事实。现在我只是将libunwind目录添加到我的外部代码中,并在我的主CMakeLists.txt中添加了一个引用。图书馆加入CMake的项目

任何输入都会很好。

+2

建立图书馆。安装它。然后将其添加为普通系统库。 –

+1

那么你是否希望将它包含在每次编译项目时都要编译的方式中? – SingerOfTheFall

回答

1

如果你想与您的项目沿着每个时间来建立它,最简单的方法是:

  • 某处添加源代码到你的项目树
  • 添加custom CMake target这之前,应该运行编译开始
  • 在这种自定义的目标,运行任何需要编译库文件(在你的情况下,它的./configure - >让 - >使安装

如何这是很少需要的,大多数情况下,您应该只创建一次库并将其与任何其他外部库链接起来。

3

与有你2个选项库处理:

  1. 如果您已经下载,并能生成并安装它,你可以尝试找到它以后在里面你的CMake像这样(的情况下,的升压),并链接到您的目标:

    find_package(升压组件DATE_TIME系统串行线program_options文件系统unit_test_framework正则表达式的时辰必需)

    如果(NOT Boost_FOUND) 消息(FATAL_错误 “无法找到提升!”) ENDIF(不Boost_FOUND)

    消息(STATUS “助推发现”)

    include_directories($ {Boost_INCLUDE_DIRS}) link_directories($ {Boost_LIBRARY_DIRS})

    target_link_libraries (YOUR_TARGET_NAME $ {} Boost_LIBRARIES)

  2. 您可以添加外部库来源独立的目标和使用不便像这样的CMake构建它:

    集(来源 async_waiter.h async_waiter_impl.h async_waiter_impl.cpp )

    add_library(async_waiter $ {}源)

后来就联系你的目标与它:

target_link_libraries(YOU_TARGET_NAME async_waiter)