哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

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

碼農(nóng)愛學(xué)習(xí) ? 來源:碼農(nóng)愛學(xué)習(xí) ? 作者:碼農(nóng)愛學(xué)習(xí) ? 2022-09-21 08:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

1 有1個獨(dú)立文件夾

1.1 文件目錄結(jié)構(gòu)

先來看下面這種情況,文件目錄結(jié)構(gòu)如下,sum.c、sum.h和main.c的代碼內(nèi)容見前面的文章。

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)

這里出現(xiàn)了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 編譯測試

在當(dāng)前目錄執(zhí)行cmake指令:

cmake .

cmake后面的點(diǎn),用來告訴CMake工具在當(dāng)前目錄中搜尋CMakeLists.txt文件。

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

make
poYBAGMpxhWAZ__WAAJAADxw9uw449.png

最后可以看到程序的運(yùn)行結(jié)果。

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

2.1 文件目錄結(jié)構(gòu)

再來看下面這種情況,文件目錄結(jié)構(gòu)如下,sum.c、sum.h、sub.c、sub.h和main.c的代碼內(nèi)容見前面的文章。

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

poYBAGMpxhuALLX6AAC1ScxIdBY026.png

2.2 編寫CMakeLists.txt

注意CMakeLists.txt和之前的區(qū)別,其實(shí)它和上面的“寫法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 編譯測試

按照之前的編譯測試流程進(jìn)行編譯測試,結(jié)果如下:

pYYBAGMpxiCAKMKmAAKK0NUnPj0093.png

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

3.1 文件目錄結(jié)構(gòu)

再來看下面這種情況,文件目錄結(jié)構(gòu)如下,sum.c、sum.h、sub.c、sub.h和main.c的代碼內(nèi)容見前面的文章。

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

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

poYBAGMpxiaANyQWAADZyBwT-N0796.png

3.2 編寫CMakeLists.txt

注意CMakeLists.txt和之前的區(qū)別:

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 編譯測試

按照之前的編譯測試流程進(jìn)行編譯測試,結(jié)果如下:

pYYBAGMpxiyAdQFyAAJeH9Y16vY931.png

4 總結(jié)

本篇介紹了不同目錄下有多個源文件時如何編寫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})

總的來說,一個新的知識點(diǎn)就是include_directories的使用。

審核編輯:湯梓紅

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

    關(guān)注

    88

    文章

    11806

    瀏覽量

    219478
  • 源文件
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    4905
  • CMake
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux Kernel 6.1 tools目錄全解析?| RK平臺ARM64交叉編譯實(shí)戰(zhàn)指南

    ? 在瑞芯微( RK ) ARM64 平臺嵌入式 Linux 開發(fā)、內(nèi)核調(diào)試與硬件外設(shè)測試, Linux 內(nèi)核源碼自帶的 tools 目錄 是官方標(biāo)配的工具集合,涵蓋性能分析、設(shè)備調(diào)
    的頭像 發(fā)表于 04-16 18:42 ?2198次閱讀
    <b class='flag-5'>Linux</b> Kernel 6.1 tools<b class='flag-5'>目錄</b>全解析?| RK平臺ARM64交叉編譯實(shí)戰(zhàn)指南

    S32DS IDE:CMake項(xiàng)目,使用 PE 進(jìn)行 ELF 文件調(diào)試時,它沒有按預(yù)期工作,為什么?

    我正在使用 cmake nijia 而不是 S32DS IDE 來創(chuàng)建 ELF 文件。目標(biāo)開發(fā)板是S32K344,編譯器是GHS。 到目前為止,我已經(jīng)成功生成了 ELF 文件,但是在使用 PE 進(jìn)行
    發(fā)表于 04-16 11:14

    如何在 STM32Cube CMake 工程添加源文件

    STM32Cube for Visual Studio Code V3 版本(例如,如下圖所示的 Pre-release V3.4.11)打開,編輯,編譯以及調(diào)試。但是除了 STM32CubeMX 生成的文件,還有自己開發(fā)的源文件
    發(fā)表于 04-15 16:07 ?0次下載

    MIMX9331 SDK 缺少的文件怎么獲?。?/a>

    devices下的MIMX9352文件,并且存在9352的相應(yīng)文件。作為解決方法,我手動從 9352 目錄復(fù)制丟失的文件并重命名它們(修復(fù)
    發(fā)表于 04-02 06:39

    LAT1574_如何在 STM32Cube CMake 工程添加源文件

    自己開發(fā)的源文件。例如,在根目錄下有個目錄名為 custom,里面有一些文件,都需要編譯。那么,在沒有圖
    發(fā)表于 03-11 10:46 ?0次下載

    飛凌嵌入式ElfBoard-創(chuàng)建目錄

    Linux系統(tǒng),目錄也是系統(tǒng)的一種特殊文件,畢竟Linux系統(tǒng)中一切皆
    發(fā)表于 01-04 09:30

    ESP32 編譯過程 bootloader 配置階段的 CMake 緩存沖突錯誤,記錄

    刪除相關(guān)行) 總結(jié) 核心問題:CMake 緩存記錄的 ESP-IDF 路徑(v5.4.3)與當(dāng)前使用的路徑(v5.5.1)不匹配,導(dǎo)致配置失敗。 關(guān)鍵修復(fù):刪除 build 目錄清除緩存 + 重置
    發(fā)表于 12-23 07:07

    飛凌嵌入式ElfBoard-Linux系統(tǒng)文件分類

    二進(jìn)制數(shù)字,作為二進(jìn)制文件來說,里面都是二進(jìn)制數(shù)字,并非ASCII碼。2.目錄文件目錄文件用于組織和存儲其他
    發(fā)表于 12-09 08:59

    Linux新手通關(guān)!5分鐘掌握文件/目錄管理,告別“找不到北”

    文件夾時明明點(diǎn)了操作,打開卻空無一物…?其實(shí)?Linux?的文件?/?目錄管理有?“固定套路”,學(xué)會?8?個核心命令,再記住?3?個避坑技巧
    的頭像 發(fā)表于 11-17 10:42 ?597次閱讀
    <b class='flag-5'>Linux</b>新手通關(guān)!5分鐘掌握<b class='flag-5'>文件</b>/<b class='flag-5'>目錄</b>管理,告別“找不到北”

    使用rk3568開發(fā)板,核0\\1\\3運(yùn)行linux,核2運(yùn)行hal,在核0怎么關(guān)閉核2

    使用rk3568開發(fā)板,核0\\\\1\\\\3運(yùn)行linux,核2運(yùn)行hal,想在內(nèi)核通過smc指令完成核0對核2得啟動和關(guān)閉,文件系統(tǒng)
    發(fā)表于 10-27 10:09

    飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門-文件操作相關(guān)shell命令

    :2.5.4 cp文件復(fù)制命令命令:cp英文全拼:copy功能:實(shí)現(xiàn)文件的復(fù)制操作參數(shù):cp [選項(xiàng)] 源文件/目錄目的文件/
    發(fā)表于 09-30 09:46

    Linux系統(tǒng)目錄結(jié)構(gòu)全面剖析

    Linux文件系統(tǒng)采用層次化的目錄結(jié)構(gòu),這種設(shè)計(jì)遵循了Unix哲學(xué)的"一切皆文件"原則。理解Linux
    的頭像 發(fā)表于 07-21 17:33 ?956次閱讀

    迅為RK3568開發(fā)板基本工程目錄-工程級目錄

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

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

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

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統(tǒng)中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務(wù),如管理文件目錄、操作進(jìn)程、網(wǎng)絡(luò)通信、軟件安裝等。
    的頭像 發(fā)表于 05-03 18:08 ?2013次閱讀
    濉溪县| 万载县| 赤壁市| 民勤县| 临泽县| 德庆县| 庐江县| 和林格尔县| 沿河| 天柱县| 遵义市| 监利县| 大城县| 汉中市| 平顶山市| 乌兰察布市| 呼图壁县| 绵竹市| 黄浦区| 于田县| 安仁县| 阿鲁科尔沁旗| 克什克腾旗| 中西区| 资兴市| 科技| 随州市| 天水市| 乐安县| 临夏市| 闽侯县| 松潘县| 平谷区| 修武县| 三穗县| 曲沃县| 平邑县| 沙河市| 石台县| 贵港市| 仲巴县|