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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

Linux中CMake的使用3-不同目錄多個源文件

碼農愛學習 ? 來源:碼農愛學習 ? 作者:碼農愛學習 ? 2022-09-21 08:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上篇(Linux中CMake的使用2-同目錄下多個源文件)介紹了在同一目錄下有多個源文件時如何編寫CMakeLists.txt。

本篇繼續介紹不同目錄下有多個源文件時如何編寫CMakeLists.txt

1 有1個獨立文件夾

1.1 文件目錄結構

先來看下面這種情況,文件目錄結構如下,sum.c、sum.h和main.c的代碼內容見前面的文章。

pYYBAGMpxg6AHXY7AACrXL8Iwb4843.png

1.2 編寫CMakeLists.txt

對于這種情況,CMakeLists.txt可以有不同的寫法:

寫法1

首先看第一種寫法,如下:

cmake_minimum_required (VERSION 2.8)

project (sum_test)

include_directories (func)

add_executable(sum_test main.c func/sum.c)

這里出現了1個新的命令:include_directories,用來指定頭文件的搜索路徑

寫法2

再來看第二種寫法,如下:

cmake_minimum_required (VERSION 2.8)

project (sum_test)

include_directories (func)

aux_source_directory (func SRC_LIST)

add_executable(sum_test main.c ${SRC_LIST})

可以使用aux_source_directory,將指定目錄下的源文件列表存放到變量

1.3 編譯測試

在當前目錄執行cmake指令:

cmake .

cmake后面的點,用來告訴CMake工具在當前目錄中搜尋CMakeLists.txt文件。

自動生成makefile文件之后,再使用make指令編譯源碼:

make
poYBAGMpxhWAZ__WAAJAADxw9uw449.png

最后可以看到程序的運行結果。

2 有多個獨立文件夾(情況1)

2.1 文件目錄結構

再來看下面這種情況,文件目錄結構如下,sum.c、sum.h、sub.c、sub.h和main.c的代碼內容見前面的文章。

其中sum.c、sum.h、sub.c和sub.h放到func這個文件夾中:

poYBAGMpxhuALLX6AAC1ScxIdBY026.png

2.2 編寫CMakeLists.txt

注意CMakeLists.txt和之前的區別,其實它和上面的“寫法2”一樣:

cmake_minimum_required (VERSION 2.8)

project (sum_sub_test)

include_directories (func)

aux_source_directory (func SRC_LIST)

add_executable(sum_sub_test main.c ${SRC_LIST})

2.3 編譯測試

按照之前的編譯測試流程進行編譯測試,結果如下:

pYYBAGMpxiCAKMKmAAKK0NUnPj0093.png

3 有多個獨立文件夾(情況2)

3.1 文件目錄結構

再來看下面這種情況,文件目錄結構如下,sum.c、sum.h、sub.c、sub.h和main.c的代碼內容見前面的文章。

其中sum.c和sum.h放到sumfunc這個文件夾中,sub.c和sub.h放到subfunc這個文件夾中:

此次兩種文件分布在兩個文件夾中:

poYBAGMpxiaANyQWAADZyBwT-N0796.png

3.2 編寫CMakeLists.txt

注意CMakeLists.txt和之前的區別:

cmake_minimum_required (VERSION 2.8)

project (sum_sub_test)

include_directories (sumfunc subfunc)

aux_source_directory (sumfunc SRC_LIST1)
aux_source_directory (subfunc SRC_LIST2)

add_executable(sum_sub_test main.c ${SRC_LIST1} ${SRC_LIST2})

這里使用了兩個aux_source_directory,將兩個目錄下的源文件列表分別存放到不同的變量

3.3 編譯測試

按照之前的編譯測試流程進行編譯測試,結果如下:

pYYBAGMpxiyAdQFyAAJeH9Y16vY931.png

4 總結

本篇介紹了不同目錄下有多個源文件時如何編寫CMakeLists.txt。

pYYBAGMpxjGAWM-fAAZch3FOWZo591.png

對于不同文件夾下的多個源文件,主要是使用include_directories來添加頭文件的搜索目錄

cmake_minimum_required (VERSION 2.8)

project (sum_test)

include_directories (func)

add_executable(sum_test main.c func/sum.c)

另外,仍然可以借助aux_source_directory把指定目錄下的所有源文件存列表存放到變量中:

cmake_minimum_required (VERSION 2.8)

project (sum_test)

include_directories (func)

aux_source_directory (func SRC_LIST)

add_executable(sum_test main.c ${SRC_LIST})

總的來說,一個新的知識點就是include_directories的使用。

審核編輯:湯梓紅

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

    關注

    87

    文章

    11513

    瀏覽量

    213936
  • 源文件
    +關注

    關注

    0

    文章

    30

    瀏覽量

    4789
  • CMake
    +關注

    關注

    0

    文章

    28

    瀏覽量

    1520
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux系統目錄結構全面剖析

    Linux文件系統采用層次化的目錄結構,這種設計遵循了Unix哲學的"一切皆文件"原則。理解Linux
    的頭像 發表于 07-21 17:33 ?179次閱讀

    迅為RK3568開發板基本工程目錄-工程級目錄

    。 AppScope 目錄存放應用全局所需要的資源文件。在 AppScope,其中有 resources 文件夾和配置文件 app.jso
    發表于 07-10 10:45

    NCS怎么添加.c.h文件到工程

    Directories添加頭文件路徑 對工程或者文件夾鼠標右擊就可以添加文件或者.c文件管理文件等操作。 可以看出,Segger添加
    的頭像 發表于 06-27 14:48 ?240次閱讀
    NCS怎么添加.c.h<b class='flag-5'>文件</b>到工程

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務,如管理文件目錄、操作進程、網絡通信、軟件安裝等。
    的頭像 發表于 05-03 18:08 ?1138次閱讀

    從零開始馴服Linux(一):ZYNQ-Linux啟動文件構建全解析

    使用的u-boot源碼路徑為:開發板資料盤(A 盤)\4_SourceCode\3_Embedded_Linux\資源文件\出廠鏡像相關,在該目錄下有一個名為
    發表于 03-20 16:48

    為什么無法在OpenVINO? 2021.3源中使用CMAKE編譯ONNX模型?

    :50:10:嚴重錯誤:onnx/onnx-ml.pb.h:無此類文件目錄#include“onnx/onnx-ml.pb.h” 使用 CMAKE* 編譯命令: cmake
    發表于 03-05 08:29

    DLP LightCrafter 6500&amp;9000-4.0.1 安裝后,對其安裝目錄下的Sources文件夾下的源文件用Qt編譯,出現上圖錯誤是什么原因?

    DLP LightCrafter 6500&9000-4.0.1 安裝后,對其安裝目錄下的Sources文件夾下的源文件用Qt編譯,出現上圖錯誤是什么原因?
    發表于 02-26 07:15

    Linux的用戶與創建

    Linux的用戶與創建 用戶的類型 超級管理用戶: 權限最高的用戶(uid:0) #uid:是用戶的身份證號,Linux系統只認uid 普通用戶: 權限受限的用戶(uid:1000-60000
    的頭像 發表于 12-20 14:24 ?752次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b>的用戶與創建

    飛凌嵌入式ElfBoard ELF 1板卡-內核源代碼的目錄結構和文件說明

    Linux內核目錄下有很多的文件夾和文件,很多文件夾和文件我們不需要關注,我們主要了解比較
    發表于 12-16 13:04

    Linux文件查找

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

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

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

    Linux lsof命令的基本用法

    linux 系統,一切皆文件。通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件
    的頭像 發表于 10-23 11:52 ?1342次閱讀
    <b class='flag-5'>Linux</b> lsof命令的基本用法

    Linux文件系統的掛載過程

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

    如何構建Linux文件系統

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

    【米爾NXP i.MX 93開發板試用評測】3、NXP的MCU工程目錄結構和源碼分析

    環境無縫集成。 而NXP的項目工程,可以說是CMake工程的優秀示范。 目錄結構 這種目錄結構有助于提高軟件開發的效率和質量,特別是在大型項目和團隊合作的環境。通過合理的組織和模塊化
    發表于 09-21 21:11
    主站蜘蛛池模板: 亚洲免费一区二区 | 免费看欧美xxx片 | 视频一区二区中文字幕 | WWW亚洲精品久久久无码 | 成人小视频在线免费观看 | 国产不卡视频在线观看 | 波多野结衣的AV一区二区三区 | 99re久久免费热在线视频手机 | 久久这里只有精品视频e | 黄片长版看嘛 | 好湿好滑好硬好爽好深视频 | 日本全彩黄漫无遮挡 | 日本夜爽爽一区二区三区 | 朋友的娇妻好爽好烫嗯 | 老阿姨儿子一二三区 | 亚洲色噜噜狠狠站欲八 | 国产 亚洲 中文字幕 在线 | 国产精品久人妻精品 | 九九免费的视频 | 亚洲一日韩欧美中文字幕在线 | 囯产精品麻豆巨作久久 | 久久99精品久久久久久园产越南 | 亚洲一区免费在线观看 | 亚洲免费观看在线视频 | 偷偷鲁青春草原视频分类 | 啊叫大点声欠CAO的SAO贷 | 亚洲欧美综合中文 | 欧美日韩另类在线专区 | 午夜免费无码福利视频麻豆 | [高清无码] 波多野结衣| 暖暖 免费 高清 日本视频5 | 色婷婷99综合久久久精品 | 草比比过程图 | 18国产精品白浆在线观看免费 | 天上人间影院久久国产 | 亚洲精品久久无码AV片银杏 | 欧美日韩一区不卡在线观看 | 国产最新精品亚洲2021不卡 | fryee性欧美18 19| yellow视频免费观看 | 富婆夜店找黑人猛男BD在线 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品