将库添加到Cmake项目

Dar*_*ian 1 c++ build cmake libunwind

也许我只是找不到它,但是我想向我的项目中添加一些代码(libunwind在这里找到http://www.nongnu.org/libunwind/download.html
该库没有CMakeLists附带。 txt文件,当我尝试包含txt文件时,cmake抱怨这一事实。现在,我只是将libunwind目录添加到外部代码,并在主CMakeLists.txt中添加了引用

任何输入都会很棒。

Dmi*_*try 5

与图书馆打交道有两种选择:

  1. 如果您已下载并能够构建和安装它,则可以尝试稍后在CMAKE内部找到它(例如Boost),并链接到您的目标:

find_package( Boost COMPONENTS date_time system serialization thread program_options filesystem unit_test_framework regex chrono REQUIRED )

if( NOT Boost_FOUND ) message( FATAL_ERROR "Cannot find boost!" ) endif( NOT Boost_FOUND )

message(STATUS "boost found")

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

target_link_libraries(YOUR_TARGET_NAME ${Boost_LIBRARIES})

Run Code Online (Sandbox Code Playgroud) 2.您可以将外部库源添加为独立目标,并对CMake使用像这样的smth来构建它:

set (sources
  async_waiter.h
  async_waiter_impl.h
  async_waiter_impl.cpp
)

add_library( async_waiter ${sources} )

Run Code Online (Sandbox Code Playgroud)

然后在链接上您将目标定位为:

target_link_libraries(YOUR_TARGET_NAME async_waiter)
Run Code Online (Sandbox Code Playgroud)