色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux中CMake的使用1-單個源文件

碼農愛學習 ? 來源:碼農愛學習 ? 作者:碼農愛學習 ? 2022-09-18 17:56 ? 次閱讀

1 引言

linux中進行C/C++開發,一般都是先用編輯器寫好代碼,然后使用gcc工具來編譯程序。

文件數量不多的工程,可以直接敲gcc命令進行編譯。對于文件較多的工程,就要使用Makefile來管理代碼的編譯了。

而手動編寫Makefile其實也是具有一定的難度的,更方便的方式是使用更易編寫CMake來自動生成Makefile。

2 Linux中安裝CMake

這里插一句,在Window系統中,許多人也用過CMake,它可以配合集成開發環境如Visual Studio,通過圖形化的操作界面,操作CMake圖形界面進行代碼的編譯。

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

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

sudo apt install cmake

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

poYBAGMm6bqADuutAABQhSE5U8o325.png

3 編譯單個文件的CMake基礎示例

3.1 編寫C源文件

首先寫一個最簡單的hello word程序,hello.c:

#include 

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

3.2 編寫CMakeLists.txt

然后在相同目錄下編寫CMakeLists.txt:

cmake_minimum_required (VERSION 2.8)

project (hello)

add_executable(hello hello.c)

這是一個最基礎的CMake使用模板,這3行的含義如下:

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

第二行:工程名

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

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

3.3 執行cmake指令生成Makefile

然后輸入以下命令運行cmake,從而幫我們自動生成makefile文件:

cmake .

這個“點”表示是當前目錄搜索源文件。

cmake指令的執行結果如下:

pYYBAGMm6dCASh17AAHJTPu5pv4743.png

可以看下CMake生成的makefile文件,相比較自己手寫的makefile,這個自動生成的makefile,內容很多:

poYBAGMm6deAUviJAAFHqpXaAPg931.png

3.4 執行make指令編譯代碼

makefile文件產生之后,就可以使用make指令來編譯源代碼了:

make

執行make指令之后,可以看到生成了可執行文件hello,運行這個hello文件,就可以看到程序的輸出了:

pYYBAGMm6d6AEe4tAAFv5vfyFgU223.png

4 總結

本篇介紹了Liunx中如何使用CMake來生成makefile,進行進行源程序的編譯。

將上述的CMake編譯單個源文件的使用操作總結為一張圖:

pYYBAGMm6eSAc8vCAAC7UozHIZM464.png

編寫CMake主要就是編寫CMakeLists.txt,基礎模板為:

cmake_minimum_required (VERSION 2.8)

project (hello)

add_executable(hello hello.c)

其中最主要的一句就是:

add_executable(hello hello.c)




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209326
  • gcc編譯器
    +關注

    關注

    0

    文章

    78

    瀏覽量

    3378
收藏 人收藏

    評論

    相關推薦

    Linux文件查找

    Linux文件查找 1.find查找概述 為什么要有文件查找,因為很多時候我們可能會忘了某個文件所在的位置,此時就需要通過find來查找。
    的頭像 發表于 12-03 17:09 ?237次閱讀

    Linux文件壓縮打包的各種姿勢

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

    使用lsof實現對linux文件的誤刪除恢復練習

    本文記錄使用lsof實現對linux文件的誤刪除恢復練習。題目如下: 1.確保當前nginx進程運行 2.刪除日志文件,rm -f /va
    的頭像 發表于 11-24 11:14 ?175次閱讀
    使用lsof實現對<b class='flag-5'>linux</b><b class='flag-5'>文件</b>的誤刪除恢復練習

    Linux文件系統的掛載過程

    Linux文件系統(rootfs)是Linux系統中所有其他文件系統和目錄的起點,它是內核啟動時掛載的第一個文件系統。
    的頭像 發表于 10-05 16:50 ?402次閱讀

    如何構建Linux文件系統

    構建Linux文件系統是一個涉及多個步驟和概念的過程,它對于Linux系統的啟動和運行至關重要。
    的頭像 發表于 10-05 16:47 ?292次閱讀

    VSCode編譯過程cmake錯誤的原因?

    VSCode編譯產生一個問題,問題如下: CMake Error at CMakeLists.txt:1 (idf_component_register):Unknown CMake
    發表于 06-06 06:48

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

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

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

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

    1-寬輸入范圍降壓SWIFT?轉換器TPS5410數據表

    電子發燒友網站提供《1-寬輸入范圍降壓SWIFT?轉換器TPS5410數據表.pdf》資料免費下載
    發表于 04-22 09:38 ?0次下載
    <b class='flag-5'>1-</b>寬輸入范圍降壓SWIFT?轉換器TPS5410數據表

    電流限制1-? 智能負載開關TPS22951數據表

    電子發燒友網站提供《電流限制1-? 智能負載開關TPS22951數據表 .pdf》資料免費下載
    發表于 03-15 10:49 ?0次下載
    電流限制<b class='flag-5'>1-</b>? 智能負載開關TPS22951數據表

    嵌入式Linux C語言編程程序調試與宏定義

    Linux使用gcc編譯程序的時候,對于調試的語句還具有一些特殊的語法。gcc編譯的過程,會生成一些宏,可以使用這些宏分別打印當前源文件的信息,主要內容是當前的文件、當前運行的函數
    發表于 03-01 11:41 ?998次閱讀

    請問一下CMake和Make之間的區別有哪些?

    CMake和Make是構建軟件,其工作涉及將源代碼轉換為可執行程序。CMake和Make是旨在實現構建過程自動化的工具,幫助開發者節省時間和精力。
    的頭像 發表于 02-27 11:44 ?1755次閱讀

    Linux的軟、硬鏈接的區別

    源文件同步。   而硬鏈接類似于拷貝,但是卻擁有同步更新的功能,再此我們可以驗證。   首先在/test目錄下創建文件link   (1) 分別穿件link的軟連接文件和硬鏈接
    發表于 02-04 16:34

    如何使用squashfs只讀文件系統制作Linux系統文件

    在 Colibri iMX6 的 eMMC 上我們將使用以下分區規劃。BootFS 為 FAT32 格式,該分區上包含 Linux 內核文件,device tree 等啟動文件,如果是 iMX8,則還包含一些其他固件
    發表于 01-09 11:43 ?1961次閱讀
    如何使用squashfs只讀<b class='flag-5'>文件</b>系統制作<b class='flag-5'>Linux</b>系統<b class='flag-5'>文件</b>

    Linux系統文件比較工具集合

    Linux系統,文件比較是一種常見的任務,用于比較兩個文件之間的差異。文件比較可以幫助我們找出兩個
    的頭像 發表于 01-02 13:53 ?684次閱讀
    主站蜘蛛池模板: 在线播放av欧美无码碰| 搞av.com| 天美麻豆成人AV精品视频| 健身房被教练啪到腿软H| 99久久亚洲精品日本无码| 国产成人在线视频观看| 欧美日韩精品不卡在线观看| 国产精品久久久久久AV免费不卡| 天堂色| 噜噜噜狠狠夜夜躁| 2020国产成人精品免费视频| 色欲精品国产AV久久久| 成人在线高清不卡免费视频| 日本又黄又爽又色又刺激的视频| 娇喘高潮教室h| 国产精品第100页| 亚洲国产精品一区二区久久第| 黄色三级网络| 儿子好妈妈的HD3中字抢劫| 2019久久这里只精品热在线观看| 亚洲国产成人私人影院| 老头xxx| 精品国产90后在线观看| 国产成人无码精品久久久影院 | 四虎影院2022| 欧美 另类 美腿 亚洲 无码| 精品爽爽久久久久久蜜臀| 国产成人精品视频播放| 伧理片午夜伧理片| 亚洲精品AV无码重口另类| 色欲国产麻豆一精品一AV一免费| 欧美日韩无套内射另类| 美女脱光app| 老师破女学生特级毛片| 久久草香蕉频线观| a视频在线看| 最新中文字幕在线视频| 日韩影院久久| 青青视频国产依人在线| 灰原哀被啪漫画禁漫| 国产欧美二区综合|