CMake方式編譯

2022-06-02 10:45:10 字數 2379 閱讀 1445

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

#指定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 $

$)

編寫好cmakelists.txt檔案cd到專案build執行cmake命令,如下圖:

將會在build目錄下生成makefile檔案

再執行make命令專案就會開始編譯,在專案lib目錄下生成libmyprint.so檔案。

生成的動態庫檔案怎麼去鏈結使用呢?

(3)cmake方式鏈結使用庫檔案

直接在src目錄下新建 原始檔hello.cpp來應用libmyprint.so庫

重新編寫cmakelists.txt檔案,內容如下:

1

#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)

cd到build目錄,執行cmake命令,再執行make命令,將在build目錄下生成可執行檔案hello。

如下圖:

執行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...