cmake基礎
cmake是一種跨平台編譯工具
cmake主要是編寫cmakelists.txt檔案
通過cmake命令將cmakelists.txt檔案轉化為make所需的makefile檔案
再用make命令編譯源**生成可執行程式或庫檔案
示例工程
(1)專案結構
build目錄 用來構建專案(編譯構建中間檔案等)
include目錄 放置標頭檔案。myprint.h標頭檔案,其內容如下:
src目錄 放置源**實現檔案。myprint.cpp檔案,內容如下:
hello.cpp檔案,內容如下:
(2)cmake方式編譯生成庫檔案
為了利用cmake將專案編譯成動態庫提供給其他專案使用:
首先,我們要建立cmakelists.txt檔案,簡單來說cmake就是我們把編譯資訊錄入。
cmake命令根據cmakelists.txt生成編譯需要的makefile檔案。
cmakelists.txt檔案具體內容編寫如下:
1編寫好cmakelists.txt檔案cd到專案build執行cmake命令,如下圖:#指定cmake編譯最低要求版本
2 cmake_minimum_required(version 3.14)3#
給專案命名
4project(myprint)5#
收集c/c++檔案並賦值給變數src_list_cpp $代表區當前專案錄
6 file(glob src_list_cpp $/src/*.cpp)
7 file(glob src_list_c $/src/*.c)8#
指定頭檔案目錄
9 include_directories($/include)10#
指定生成庫檔案的目錄
11 set(library_output_path $/lib)12#
取變數src_list_cpp 與 src_list_c的值 13#
指定生成libmyprint 動態庫(預設為靜態庫) 14#
shared指定生成庫型別為動態庫 static為靜態庫
15 add_library(myprint shared $
$)
將會在build目錄下生成makefile檔案
再執行make命令專案就會開始編譯,在專案lib目錄下生成libmyprint.so檔案。
生成的動態庫檔案怎麼去鏈結使用呢?
(3)cmake方式鏈結使用庫檔案
直接在src目錄下新建 原始檔hello.cpp來應用libmyprint.so庫
重新編寫cmakelists.txt檔案,內容如下:
1cd到build目錄,執行cmake命令,再執行make命令,將在build目錄下生成可執行檔案hello。#cmake版本需求
2 cmake_minimum_required(version 3.14)3#
工程名稱
4project(hello)5#
source 將hello.cpp賦值給source變數
6 set(source $/src/hello.cpp)7#
指定頭檔案目錄
8 include_directories($/include)9#
指定鏈結庫檔案目錄
10 link_directories($/lib)11#
將hello.cpp生成可執行檔案hello
12 add_executable(hello $)13
#指定hello 鏈結庫myprint
14 target_link_libraries(hello myprint)
如下圖:
執行hello,執行結果:hello world!
good good study, day day up.
順序 選擇 迴圈 總結
cmake方式編譯安裝MySQL5 5 55
系統環境 1.準備工作 centos6.6 最小化安裝 安裝必要的軟體 yum install lrzsz nmap tree dos2unix nc y 關閉selinux,iptables,精簡開機自啟動服務 chkconfig egrep v crond sshd network rsyslo...
cmake交叉編譯
1 設定交叉編譯之前,必須在 cmakelist.txt 前面加上這樣一句,這樣 cmake 才會認為你是要交叉編譯 set cmake system namelinux 其中linux 是要編譯過去的平台,如果你是在 linux 下交叉編譯 window 的東西,就要寫成 windows 了。我是...
CMake編譯 雜記
一 cmake常見的預置的巨集 project name 通過project指定的專案名稱 project demo project source dir 工程的根目錄,上圖中的demo目錄 project binary dir 執行cmake命令的目錄,一般是在build目錄,在此目錄執行cmak...