當前位置:首頁 » 編程軟體 » cmake編譯外部庫

cmake編譯外部庫

發布時間: 2023-02-26 07:13:52

1. cmake 怎麼樣編譯庫的時候加其他庫

編譯mac靜態庫
這個比較簡單,直接Xcode -GXcode,然後用xcodebuild命令即可。
編譯Andoird靜態庫
編譯android庫我們同樣可以引入一個toolchain文件,這里我是從 android-cmake 裡面下載的。
在使用這個toolchain文件之前,我們先要使用ndk自帶的make-standalone-toolchain.sh腳本來生成對應平台的toolchain.這個腳本位於你的NDK的路徑下面的buil/tools目錄下。
比如要生成arm平台的toolchain,我們可以使用下列命令:

sh $ ANDROID_NDK / build / tools / make - standalone - toolchain . sh -- platform = android - $ANDROID_API_LEVEL -- install - dir = . / android - toolchain -- system = darwin - x86_64 -- ndk - dir = /Users / guanghui / AndroidDev / android - ndk - r9d / -- toolchain = arm - linux - androideabi - 4.8

這里的$ANDROID_NDK為你的NDK的安裝路徑。這段命令可以生成arm的toolchain,最終可以編譯出armeabi和armeabi-v7a靜態庫。 如果想生成x86的toolchain,指需要使用下列命令:

sh $ ANDROID_NDK / build / tools / make - standalone - toolchain . sh -- platform = android - $ANDROID_API_LEVEL -- install - dir = . / android - toolchain - x86 -- system = darwin - x86_64 -- ndk - dir= / Users / guanghui / AndroidDev / android - ndk - r9d / -- toolchain = x86 - 4.8

最後,我們要告訴CMake使用外部toolchain文件,可以使用參數-DCMAKE_TOOLCHAIN_FILE=xxx。此外,我們還需要在導出兩個環境變數給此toolchain文件:

export PATH = $ PATH : . / android - toolchain / bin
export ANDROID_STANDALONE_TOOLCHAIN = . / android - toolchain
cmake - DCMAKE_TOOLCHAIN_FILE = . . / android . toolchain . cmake - DANDROID_ABI = "armeabi" . .

2. Cmake動態編譯VTK庫(QVtkwidget)

在版本問題上大費周章之後,得到如下的成功嘗試

軟體版本說明:

PCl1.8.1 + VS2017 + Qt5.9.6 + Cmake + Vtk8.0.0

點擊Configure後對條目進行處理:(修改完成繼續Configure直到沒有錯誤)

1.點擊Add Entry添加 

    Name:    CMAKE_DEBUG_POSTFIX 、Type:    STRING 、Value:-gd、Description:空

讓vtk的lib最後分為debug版本跟release版本。Debug版本帶-gd。Release版本不帶-gd,方便區分.

2.勾選BUILD_SHARED_LIBS,這樣最後生成的vtk才會有dll跟lib

3.CMAKE_INSTALL_PREFIX設置為你清空的VTK文件夾(為了方便,這里選擇的路徑為PCL集成的VTK路徑)

4.勾選VTK_Group_Qt,這樣以後方便在qt裡面使用

5.修改Qt5_DIR路徑為PATH=D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/lib/cmake/Qt5

6.修改VTK_QT_VERSION:STRING=5,使用Qt5修改相應版本號

7.如出現qmake路徑則修改QT_QMAKE_EXECUTABLE:FILEPATH=D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/bin/qmake.exe

完成Configure,不出意外就不再顯示紅色,接著點Generate

接著以管理員身份運行VS2017,打開構建目錄下的VTK.sln

選擇Debug,x64,然後右鍵解決方案窗口的ALL_BUILD --> 生成。

 漫長等待...ing

然後右鍵install --> 僅生成install

Release版本同理,先ALL_BUILD --> 生成 再 右鍵install --> 僅生成install

至此完成編譯VTK操作,接下來提取所需的QVtkwidget插件

3. 如何使用cmake編譯軟體項目3

1. 在主程序所在目錄的CMakeLists.txt中定義要編譯的主程序和輸出的可執行文件名:
#定義主程序名稱
add_executable(輸出的可執行文件名稱 源文件列表)
#定義鏈接庫
target_link_libraries(輸出的可執行文件名稱 鏈接庫1 鏈接庫2 ...)
2.在庫文件所在目錄中的CMakeLists.txt中告訴cmake將其所有庫文件編譯成動態庫:
#通過set命令自定義變數LIB_SRC包括那些源文件,這些文件將編譯到動態庫
set (LIB_SRC
libsrc1.cpp
libsrc2.cpp
libsrc3.cpp
)
#將上述文件編譯到庫中
add_library (庫名稱 SHARED ${LIB_SRC})
#定義庫的輸出位置, 如果在根目錄下的CMakeLists.txt中已經定義,此處可注釋掉。
set(LIBRARY_OUTPUT_PATH 具體的目錄位置)

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:746
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1009
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:715
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:876
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1124
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:349
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:227
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:873