Re: [問題] cmake project管理3rd party library

看板C_and_CPP (C/C++)作者 (Acquire higher)時間4年前 (2020/12/30 00:47), 編輯推噓1(101)
留言2則, 1人參與, 4年前最新討論串2/3 (看更多)
※ 引述《Mensholaten (REAL)》之銘言: : 目前在Linux環境下編寫 cmake project (corss compile) : 會用到的3rd party library是採用事先下載好source code和自己的code同時編譯 : 有點苦惱的地方是 不知道該如何用正規作法將library的路徑導入至自己的project : 目錄結構大概類似這樣 : root : --- my_src : --- third_party : --- aaa : --- libaaa : --- ccc : --- libccc : find_package只能用在預先安裝好的package 沒辦法用 配置階段就會fail : libaaa目錄為3rd party library的包含CMakeLists的原生資料夾 : 額外在創建aaa裡另外增加CMakeLists : 裡面設定library header/so的路徑為編譯資料夾(BINARY_SOURCE)的路徑 : 並且將這些變數設定為CACHE讓其他target include / link 時使用 : 雖然這樣做可以正確編譯 但其實是額外多動了一些手腳才達成 : 還是想知道有沒有更正確的作法? 可以試試看 Hunter 開源專案,他有 packages 管理能力,package list 是在 github 維護,用法可參考下方連結 https://hunter.readthedocs.io/en/latest/quick-start/boost-components.html 除了連結範例中的 boost libraries ,這裡有列出目前支援的 packages https://hunter.readthedocs.io/en/latest/packages/all.html 原本是一人專案,目前已經由社群接手維護,運作方式是根據 package list 去抓取特定版本函示庫的原始碼在本地端編譯,由於有快取的設計,不同專案 在同一台機器上是可以共享已經編譯過的函示庫二進位檔案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.55.110 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1609260471.A.E8B.html

12/30 10:16, 4年前 , 1F
不過業界比較通用的是conan就是 但是這個也不錯 XD
12/30 10:16, 1F

12/30 10:16, 4年前 , 2F
但是conan真的難用到爆炸..... 希望這個能好用點
12/30 10:16, 2F
文章代碼(AID): #1VwrstwB (C_and_CPP)
文章代碼(AID): #1VwrstwB (C_and_CPP)