首頁 >資訊 >

跨平臺編譯工具cmake的簡單使用

時間:2023-08-14 11:46:14     來源: 玩轉單片機

在使用不同平臺的電腦時,使用的編譯也會不一樣,如果想把一個項目在不同平臺下編譯,那有什么方式可以實現這樣的需求呢,這就是這篇文章就來介紹其中的一種方式,就是使用cmake,cmake 并不直接建構出最終的軟件,而是產生標準的建構檔,然后再借助編譯工具來構建。

| 環境搭建

在windows可以使用cmake+vscode+mingw配合使用構建,還需要把mingw32-make.exe,復制一份,將其中一份重命名為make.exe,以實現在不同平臺下可以直接使用make指令。在ubuntu中可以使用cmake+vscode+gcc來構建,ubuntu一般會自帶gcc。vscode需要安裝幾個相關插件:


(資料圖片僅供參考)

C/C++CMakeCMakeTools

可以通過cmake --version 來查看是否安裝成功,相關的安裝直接百度以下就可以;注意不同平臺下使用的命令可能會有差別,筆者使用的是ubuntu系統來操作。

| 簡單使用

同目錄單文件

1、先看文件樹

main.c源碼文件

#include"stdio.h"intmain(){printf("ok");return0;}

CMakeLists.txt配置文件

#CMake最低版本號要求cmake_minimum_required(VERSION2.8)#項目信息project(Demo1)#指定生成目標add_executable(Demomain.c)

2、構建Makefile文件

創建好文件夾后,再進入build文件夾, 使用 cmake .. 命令構建Makefile文件:

3、通過gcc編譯

在Makefile同級目錄下使用 make 命令編譯,就會生成一個可執行文件Demo文件:

4、執行可執行文件

同目錄多文件

1、編寫文件

在上邊的基礎上,把生成的文件刪除,再添加兩個文件:

main.c源碼文件

#include"stdio.h"#include"hello.h"intmain(){printf("ok");hello();return0;}

hello.c源碼文件

#include"hello.h"voidhello(void){printf("hello");}

hello.h源碼文件

#ifndef__HELLO__#define__HELLO__#include"stdio.h"voidhello(void);#endif

CMakeLists.txt配置文件(使用方式二):

方式一:通過手動指定源碼文件

#CMake最低版本號要求cmake_minimum_required(VERSION2.8)#項目信息project(Demo1)#指定生成目標add_executable(Demomain.chello.c)

方式二:查找當前目錄下的所有源文件

#CMake最低版本號要求cmake_minimum_required(VERSION2.8)#項目信息project(Demo1)#查找當前目錄下的所有源文件#并將名稱保存到DIR_SRCS變量aux_source_directory(.DIR_SRCS)#指定生成目標(自動查找)add_executable(Demo${DIR_SRCS})

2、構建Makefile文件

3、生成可執行文件

不同目錄多文件

不同目錄下的處理,就是把文件編譯成庫,再在對應位置鏈接進去。

1、先看文件樹

main.c 和 hello.c 和hello.h都可同目錄多文件案例源碼一樣。

頂層的CMakeLists.txt配置:

#CMake最低版本號要求cmake_minimum_required(VERSION2.8)#項目信息project(Demo3)#查找當前目錄下的所有源文件#并將名稱保存到DIR_SRCS變量aux_source_directory(.DIR_SRCS)#添加hello子目錄add_subdirectory(hello)#指定生成目標add_executable(Demomain.c)#添加鏈接庫target_link_libraries(DemoHelloFunctions)

hello文件夾中的CMakeLists.txt配置:

#查找當前目錄下的所有源文件#并將名稱保存到DIR_LIB_SRCS變量aux_source_directory(.DIR_LIB_SRCS)#生成鏈接庫add_library(HelloFunctions${DIR_LIB_SRCS})

2、構建Makefile文件

3、生成可執行文件

文件的路徑一定要是寫對,不然編譯會出問題:

正確的寫法如下:

執行可執行文件:

這就是cmake的簡單用法,可以根據自己需求進行深入學習。

審核編輯:湯梓紅

標簽:

頭條精選