先說一下背景:
最後整個過程表象上就成了,我有了源**後,寫乙個cmakelists.txt就可以編譯鏈結生成程式了。
舉個簡單栗子:
假如有個源**helloslam.cpp:
#include
int main()
好,同資料夾,我們編寫上cmakelists.txt文件:
#cmakelists.txt
cmake_minimum_required(version 2.8)
project(helloslam)
add_executable(helloslam helloslam.cpp)
這裡簡單的說一下cmakelists的語法:
#號行是注釋。
#要求cmake最低版本
cmake_minimum_required(version 2.8)
#專案名稱起名為helloslam
project(helloslam)
#生成可執行檔案,第乙個引數為要生成的可執行檔名稱,第二個是源**。
add_executable(helloslam helloslam.cpp)
有了cmakelists.txt文件後,此時資料夾中是這樣的:
ok,沒啥問題,很乾淨~
此時,我們在終端,cd進test目錄,並cmake當前資料夾:
第一、資料夾中的cmakelists.txt文件是告訴cmake如何操控當前資料夾下的檔案!!!也就是上方,cmakelists.txt在test資料夾中這樣子。
第二、終端中cmake指令後的目錄是指要對哪個資料夾進行操作!可以是任何乙個包含有cmakelists.txt文件的資料夾!也就是上方終端所示的,對當前資料夾進行cmake操作。
第三、cmake在**生成一堆檔案跟你在什麼目錄下執行cmake操作有關!也就是上方終端所示的:~文件/test
此資料夾下生成一堆中間檔案。
總的來說就是,這三個位址之間沒有什麼卵關係,你可以盡情的分開來操作。比如我可以在test1下去cmake test2。只要test2中有cmakelists.txt就好,然後生成的一堆檔案就放在test1 中了。
好,繼續,上一步cmake之後呢?我們看看資料夾:
是不是多了一堆東西?有cmakefiles資料夾、cmakecache.txt文件、cmake_install.cmake文件、makefile文件。這裡最重要的就是這個
makefile了。
然後繼續在終端make:
此時的make會利用上方生成的makefile去編譯鏈結。最後生成可執行檔案。
也要注意就是make不接目錄,就是操控的當前資料夾,而且生成的可執行檔案也是在當前資料夾!
make完之後,資料夾是這樣:
就比上一步多了個齒輪圖示的可執行程式:helloslam
當然,這種方式並不是最常用的,最常用的是:
mkdir build
cd build
cmake ..
make
就是在資料夾中鍵乙個build資料夾,讓產生的中間檔案都在其中,最後生成的可執行檔案也在裡面,其實也就是利用了上面三個位址沒啥關係這個特性:
test資料夾是這樣的:
build資料夾是這樣的:
cmakelists.txt指令和具體寫法後面再說。。。
cmake簡單使用
cmake是乙個跨平台的編譯 build 工具,可以用簡單的語句來描述所有平台的編譯過程 cmake 生成makefile make 生成可執行檔案 main.cpp include using namespace std int main include show.h src show.cpp m...
CMake 簡單使用
1.介紹 cmake可實現跨平台編譯,是一種優秀的編譯配置工具。2.linux下的cmake編寫demo 1 建立工程目錄cmakedemo 2 編寫c c main.c includeint main 3 編寫cmakelists.txt檔案 cmake 最低版本號要求 cmake minimum...
CMake 簡單教程
sudo add apt repository ppa george edison55 cmake 3.x sudo apt get update sudo apt get install cmake更多變數查詢位址 project的名稱 project caffe framework 最低版本限制...