在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux中CMake的使用1-單個(gè)源文件

碼農(nóng)愛(ài)學(xué)習(xí) ? 來(lái)源:碼農(nóng)愛(ài)學(xué)習(xí) ? 作者:碼農(nóng)愛(ài)學(xué)習(xí) ? 2022-09-18 17:56 ? 次閱讀

1 引言

linux中進(jìn)行C/C++開(kāi)發(fā),一般都是先用編輯器寫(xiě)好代碼,然后使用gcc工具來(lái)編譯程序。

文件數(shù)量不多的工程,可以直接敲gcc命令進(jìn)行編譯。對(duì)于文件較多的工程,就要使用Makefile來(lái)管理代碼的編譯了。

而手動(dòng)編寫(xiě)Makefile其實(shí)也是具有一定的難度的,更方便的方式是使用更易編寫(xiě)CMake來(lái)自動(dòng)生成Makefile。

2 Linux中安裝CMake

這里插一句,在Window系統(tǒng)中,許多人也用過(guò)CMake,它可以配合集成開(kāi)發(fā)環(huán)境如Visual Studio,通過(guò)圖形化的操作界面,操作CMake圖形界面進(jìn)行代碼的編譯。

本篇介紹的,在Linux中使用CMake,還用不到圖形界面,仍然是文本編輯的方式使用CMake。

CMake在Linux的安裝,直接使用命令安裝即可:

sudo apt install cmake

安裝完成之后可以查看cmake的版本,我用的是3.10.2

poYBAGMm6bqADuutAABQhSE5U8o325.png

3 編譯單個(gè)文件的CMake基礎(chǔ)示例

3.1 編寫(xiě)C源文件

首先寫(xiě)一個(gè)最簡(jiǎn)單的hello word程序,hello.c:

#include 

int main(void)
{
	printf("Hello World\n");
	return 0;
}

3.2 編寫(xiě)CMakeLists.txt

然后在相同目錄下編寫(xiě)CMakeLists.txt:

cmake_minimum_required (VERSION 2.8)

project (hello)

add_executable(hello hello.c)

這是一個(gè)最基礎(chǔ)的CMake使用模板,這3行的含義如下:

第一行:要求cmake的最低版本為2.8

第二行:工程名

第三行:生成的可執(zhí)行文件名為hello,使用的源文件為hello.c

注:以上3條,add_executable起主要作用,前兩條去掉也可以運(yùn)行

3.3 執(zhí)行cmake指令生成Makefile

然后輸入以下命令運(yùn)行cmake,從而幫我們自動(dòng)生成makefile文件:

cmake .

這個(gè)“點(diǎn)”表示是當(dāng)前目錄搜索源文件。

cmake指令的執(zhí)行結(jié)果如下:

pYYBAGMm6dCASh17AAHJTPu5pv4743.png

可以看下CMake生成的makefile文件,相比較自己手寫(xiě)的makefile,這個(gè)自動(dòng)生成的makefile,內(nèi)容很多:

poYBAGMm6deAUviJAAFHqpXaAPg931.png

3.4 執(zhí)行make指令編譯代碼

makefile文件產(chǎn)生之后,就可以使用make指令來(lái)編譯源代碼了:

make

執(zhí)行make指令之后,可以看到生成了可執(zhí)行文件hello,運(yùn)行這個(gè)hello文件,就可以看到程序的輸出了:

pYYBAGMm6d6AEe4tAAFv5vfyFgU223.png

4 總結(jié)

本篇介紹了Liunx中如何使用CMake來(lái)生成makefile,進(jìn)行進(jìn)行源程序的編譯。

將上述的CMake編譯單個(gè)源文件的使用操作總結(jié)為一張圖:

pYYBAGMm6eSAc8vCAAC7UozHIZM464.png

編寫(xiě)CMake主要就是編寫(xiě)CMakeLists.txt,基礎(chǔ)模板為:

cmake_minimum_required (VERSION 2.8)

project (hello)

add_executable(hello hello.c)

其中最主要的一句就是:

add_executable(hello hello.c)




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11351

    瀏覽量

    210497
  • gcc編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    3432
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux文件查找

    Linux文件查找 1.find查找概述 為什么要有文件查找,因?yàn)楹芏鄷r(shí)候我們可能會(huì)忘了某個(gè)文件所在的位置,此時(shí)就需要通過(guò)find來(lái)查找。
    的頭像 發(fā)表于 12-03 17:09 ?360次閱讀

    Linux文件壓縮打包的各種姿勢(shì)

    1.文件打包與壓縮 1.什么是文件壓縮? 將多個(gè)文件或目錄合并成為一個(gè)特殊的文件。比如: 搬家…
    的頭像 發(fā)表于 12-02 09:25 ?284次閱讀

    使用lsof實(shí)現(xiàn)對(duì)linux文件的誤刪除恢復(fù)練習(xí)

    本文記錄使用lsof實(shí)現(xiàn)對(duì)linux文件的誤刪除恢復(fù)練習(xí)。題目如下: 1.確保當(dāng)前nginx進(jìn)程運(yùn)行 2.刪除日志文件,rm -f /va
    的頭像 發(fā)表于 11-24 11:14 ?267次閱讀
    使用lsof實(shí)現(xiàn)對(duì)<b class='flag-5'>linux</b><b class='flag-5'>文件</b>的誤刪除恢復(fù)練習(xí)

    Linux文件系統(tǒng)的掛載過(guò)程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?533次閱讀

    如何構(gòu)建Linux文件系統(tǒng)

    構(gòu)建Linux文件系統(tǒng)是一個(gè)涉及多個(gè)步驟和概念的過(guò)程,它對(duì)于Linux系統(tǒng)的啟動(dòng)和運(yùn)行至關(guān)重要。
    的頭像 發(fā)表于 10-05 16:47 ?357次閱讀

    linux--sysfs文件系統(tǒng)

    sysfs文件系統(tǒng) sysfs,全稱(chēng)為System Filesystem,是一個(gè)由Linux內(nèi)核實(shí)現(xiàn)的虛擬文件系統(tǒng)。它扮演著一個(gè)橋梁的角色,將內(nèi)核的設(shè)備和驅(qū)動(dòng)程序信息以
    的頭像 發(fā)表于 07-08 11:37 ?1015次閱讀
    <b class='flag-5'>linux</b>--sysfs<b class='flag-5'>文件</b>系統(tǒng)

    百問(wèn)網(wǎng)全志D1h開(kāi)發(fā)板LVGL9移植詳細(xì)教程

    } ./ cp -r ../lv_port_linux_frame_buffer/lvgl/* lvgl/ 最終文件和目錄如下: [ 這是一個(gè)cmake工程,后續(xù)我們想要開(kāi)發(fā)自己的項(xiàng)目,可以把這個(gè)目錄復(fù)制一份
    發(fā)表于 06-25 10:02

    剛剛裝好esp32 elipse CMAKE編譯環(huán)境,hello word編譯不通過(guò)怎么解決?

    /hello_world/build/CMakeFiles/CMakeOutput.log\". cmake --build . -- -v ninja: error: loading \'build.ninja\': 系統(tǒng)找不到指定的文件
    發(fā)表于 06-18 06:15

    VSCode編譯過(guò)程cmake錯(cuò)誤的原因?

    VSCode編譯產(chǎn)生一個(gè)問(wèn)題,問(wèn)題如下: CMake Error at CMakeLists.txt:1 (idf_component_register):Unknown CMake
    發(fā)表于 06-06 06:48

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?

    arm-poky-linux-gnueabi.cmake將下面的內(nèi)容添加到arm-poky-linux-gnueabi.cmake文件:set(
    發(fā)表于 05-29 17:24

    飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN

    arm-poky-linux-gnueabi.cmake 將下面的內(nèi)容添加到arm-poky-linux-gnueabi.cmake文件:set(
    發(fā)表于 05-29 08:53

    1-寬輸入范圍降壓SWIFT?轉(zhuǎn)換器TPS5410數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《1-寬輸入范圍降壓SWIFT?轉(zhuǎn)換器TPS5410數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 04-22 09:38 ?0次下載
    <b class='flag-5'>1-</b>寬輸入范圍降壓SWIFT?轉(zhuǎn)換器TPS5410數(shù)據(jù)表

    電流限制1-? 智能負(fù)載開(kāi)關(guān)TPS22951數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《電流限制1-? 智能負(fù)載開(kāi)關(guān)TPS22951數(shù)據(jù)表 .pdf》資料免費(fèi)下載
    發(fā)表于 03-15 10:49 ?0次下載
    電流限制<b class='flag-5'>1-</b>? 智能負(fù)載開(kāi)關(guān)TPS22951數(shù)據(jù)表

    嵌入式Linux C語(yǔ)言編程程序調(diào)試與宏定義

    Linux使用gcc編譯程序的時(shí)候,對(duì)于調(diào)試的語(yǔ)句還具有一些特殊的語(yǔ)法。gcc編譯的過(guò)程,會(huì)生成一些宏,可以使用這些宏分別打印當(dāng)前源文件的信息,主要內(nèi)容是當(dāng)前的文件、當(dāng)前運(yùn)行的函數(shù)
    發(fā)表于 03-01 11:41 ?1133次閱讀

    請(qǐng)問(wèn)一下CMake和Make之間的區(qū)別有哪些?

    CMake和Make是構(gòu)建軟件,其工作涉及將源代碼轉(zhuǎn)換為可執(zhí)行程序。CMake和Make是旨在實(shí)現(xiàn)構(gòu)建過(guò)程自動(dòng)化的工具,幫助開(kāi)發(fā)者節(jié)省時(shí)間和精力。
    的頭像 發(fā)表于 02-27 11:44 ?1897次閱讀
    主站蜘蛛池模板: 久久久久国产一级毛片高清板 | 日本免费一区二区视频 | 亚洲伊人电影 | 大又大粗又爽又黄少妇毛片 | 国产精欧美一区二区三区 | 欧美大狠狠大臿蕉香蕉大视频 | 视频黄色在线 | 国产三a级日本三级日产三级 | 在线a亚洲老鸭窝天堂新地址 | 日本在线观看高清不卡免v 日本在线观看永久免费网站 | 国产综合图区 | 欧美中出 | 亚洲综合一 | 久久精品国产免费观看99 | 免费三级网站 | 黄色毛片大全 | 人人人人澡 | 久久黄色视屏 | 日韩中文视频 | 色香蕉在线观看网站 | 在线视频h | 男女在线免费视频 | 色人阁综合 | 久久久久久全国免费观看 | 欧美大片一区二区 | 丁香午夜婷婷 | 国产精品好好热在线观看 | 日本 韩国 三级 国产 欧美 | 色骚网| 人人艹在线视频 | 亚洲伊人久久大香线蕉影院 | 国产91丝袜在线播放九色 | 日本5级床片全免费 | 成人看片免费无限观看视频 | 欧美性猛交xxxx免费 | 免费视频大全 | 性夜影院爽黄a爽在线看香蕉 | 日本拍拍 | 久久久五月 | 天天看天天摸色天天综合网 | 伊人天伊人天天网综合视频 |