精品国产午夜肉伦伦影院_亚洲精品国产成人_亚洲AV无码成人精品区在线播放_日韩欧美中文在线_精99久中文字幕人妻

首頁(yè) >資訊 >

跨平臺(tái)編譯工具cmake的簡(jiǎn)單使用

時(shí)間:2023-08-14 11:46:14     來(lái)源: 玩轉(zhuǎn)單片機(jī)

在使用不同平臺(tái)的電腦時(shí),使用的編譯也會(huì)不一樣,如果想把一個(gè)項(xiàng)目在不同平臺(tái)下編譯,那有什么方式可以實(shí)現(xiàn)這樣的需求呢,這就是這篇文章就來(lái)介紹其中的一種方式,就是使用cmake,cmake 并不直接建構(gòu)出最終的軟件,而是產(chǎn)生標(biāo)準(zhǔn)的建構(gòu)檔,然后再借助編譯工具來(lái)構(gòu)建。

| 環(huán)境搭建

在windows可以使用cmake+vscode+mingw配合使用構(gòu)建,還需要把mingw32-make.exe,復(fù)制一份,將其中一份重命名為make.exe,以實(shí)現(xiàn)在不同平臺(tái)下可以直接使用make指令。在ubuntu中可以使用cmake+vscode+gcc來(lái)構(gòu)建,ubuntu一般會(huì)自帶gcc。vscode需要安裝幾個(gè)相關(guān)插件:


(資料圖片僅供參考)

C/C++CMakeCMakeTools

可以通過(guò)cmake --version 來(lái)查看是否安裝成功,相關(guān)的安裝直接百度以下就可以;注意不同平臺(tái)下使用的命令可能會(huì)有差別,筆者使用的是ubuntu系統(tǒng)來(lái)操作。

| 簡(jiǎn)單使用

同目錄單文件

1、先看文件樹(shù)

main.c源碼文件

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

CMakeLists.txt配置文件

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

2、構(gòu)建Makefile文件

創(chuàng)建好文件夾后,再進(jìn)入build文件夾, 使用 cmake .. 命令構(gòu)建Makefile文件:

3、通過(guò)gcc編譯

在Makefile同級(jí)目錄下使用 make 命令編譯,就會(huì)生成一個(gè)可執(zhí)行文件Demo文件:

4、執(zhí)行可執(zhí)行文件

同目錄多文件

1、編寫文件

在上邊的基礎(chǔ)上,把生成的文件刪除,再添加兩個(gè)文件:

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配置文件(使用方式二):

方式一:通過(guò)手動(dòng)指定源碼文件

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

方式二:查找當(dāng)前目錄下的所有源文件

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

2、構(gòu)建Makefile文件

3、生成可執(zhí)行文件

不同目錄多文件

不同目錄下的處理,就是把文件編譯成庫(kù),再在對(duì)應(yīng)位置鏈接進(jìn)去。

1、先看文件樹(shù)

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

頂層的CMakeLists.txt配置:

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

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

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

2、構(gòu)建Makefile文件

3、生成可執(zhí)行文件

文件的路徑一定要是寫對(duì),不然編譯會(huì)出問(wèn)題:

正確的寫法如下:

執(zhí)行可執(zhí)行文件:

這就是cmake的簡(jiǎn)單用法,可以根據(jù)自己需求進(jìn)行深入學(xué)習(xí)。

審核編輯:湯梓紅

標(biāo)簽:

頭條精選