2014-06-28 43 views
5

是否有可能讓CMake收集編譯過程中使用的所有包庫,遞歸地獲取他們需要的庫,然後將它們全部放在一個目錄中?例如,如果我的應用程序需要gtk,它會抓取glib及其所需的庫libiconv,gettext和libffi。CMake部署必需的庫

+2

here我不認爲CMake的有這個,但你可以寫一個腳本,通過遞歸所有的依賴使用'ldd'和副本發現圖書館目錄行走(從cmake的稱呼它) – szx

+1

從概述的角度來看,CMake提供了一些工具來測試是否需要庫可用於構建,收集庫位置並獲取所需的cflags和ldflags信息,以便成功完成多文件/目錄編譯。在CMakeLists.txt文件和其他文件中,您可以自由使用腳本類型命令將數據移動到所需的目錄以創建更高效​​的佈局。 –

+0

不知道爲什麼這是下來投票..有趣的問題。 :) 你想要的不是核心CMake功能(AFAIK)的一部分,但你可以寫一個腳本來做到這一點。爲什麼不直接生成本地包而不是存儲依賴關係? – wojciii

回答

2

您可以使用GetPrerequesites CMake模塊。 瞭解更多信息

+0

我一直在使用ldd和i686-w64-mingw32-objdump方法,但是這個模塊確實讓生活變得更容易一些,它可以跨平臺使用。謝謝你的提示。 –