2016-12-20 195 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)