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

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

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

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

Linux中CMake的使用4-代碼與編譯文件單獨(dú)存放

碼農(nóng)愛學(xué)習(xí) ? 來源:碼農(nóng)愛學(xué)習(xí) ? 作者:碼農(nóng)愛學(xué)習(xí) ? 2022-09-22 08:57 ? 次閱讀

本篇介紹當(dāng)源文件編譯文件獨(dú)立存放時,如何編寫CMakeLists.txt。

1只使用一個CMakeLists.txt

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

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

其中sum.h和sub.h放到include這個文件夾中,main.c、sum.c和sub.c放到src這個文件夾中。

在整個工程中,只有一個CMakeLists.txt:

pYYBAGMrImeAOwP9AAC05JSEiH0714.png

1.2 CMakeLists.txt

cmake_minimum_required (VERSION 2.8)

project (sum_sub_test)

include_directories (include)

aux_source_directory (src SRC_LIST)

add_executable (sum_sub_test ${SRC_LIST})

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

最后一句是一個新的知識點(diǎn):

EXECUTABLE_OUTPUT_PATH:CMake自帶的預(yù)定義變量,表示可執(zhí)行文件的存放位置

PROJECT_SOURCE_DIR:CMake自帶的預(yù)定義變量,表示工程的根目錄

set指令:用于定義變量,即指定可執(zhí)行文件存放在工程根目錄下的bin目錄中

1.3 運(yùn)行測試

poYBAGMrIm-ABCWUAAJ-1ZPUIV8858.png

2 頂層+子層CMakeLists.txt

一個工程,可以不只有一個CMakeLists.txt,通過層級間的管理,可以實(shí)現(xiàn)頂層對底層的調(diào)用。

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

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

其中sum.h和sub.h放到include這個文件夾中,main.c、sum.c和sub.c放到src這個文件夾中。

在整個工程中,外出有一個CMakeLists.txt,子層src目錄中也有一個CMakeLists.txt:

poYBAGMrInaAAceHAADFaC6CL1A628.png

2.2 CMakeLists.txt

2.2.1 頂層CMakeLists.txt

cmake_minimum_required (VERSION 2.8)

project (sum_sub_test)

add_subdirectory (src)

最后一句是一個新的知識點(diǎn):

add_subdirectory():向當(dāng)前工程添加存放源文件的子目錄

這里指定的是在src目錄下存放了源文件

當(dāng)執(zhí)行cmake指令時,就會進(jìn)入src目錄下去找下一級的CMakeLists.txt

所以在src目錄下也必須要有一個子層的CMakeLists.txt

2.2.2 子層CMakeLists.txt

include_directories (../include)

aux_source_directory (. SRC_LIST)

add_executable(sum_sub_test ${SRC_LIST})

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

最后的set語句剛才已經(jīng)見過了,就是指定可執(zhí)行文件的輸出位置。

2.3 運(yùn)行測試

poYBAGMrIn6AB5-jAAJogwHTdaE221.png

3 總結(jié)

本篇介紹了源文件與編譯文件獨(dú)立存放時,如何編寫CMakeLists.txt。

pYYBAGMrIoSAZHmrAAEi5S1FkQM322.png
cmake_minimum_required (VERSION 2.8)

project (sum_sub_test)

include_directories (include)

aux_source_directory (src SRC_LIST)

add_executable (sum_sub_test ${SRC_LIST})

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

新引入的知識點(diǎn)是最后這句,通過set來指定可執(zhí)行文件的輸出位置:

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

以及使用頂層+子層的CMakeLists.txt時,通過add_subdirectory來指定子層源文件的目錄:

add_subdirectory (src)

并在相應(yīng)的子層目錄中再編寫CMakeLists.txt。

審核編輯:湯梓紅
聲明:本文內(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)注

    87

    文章

    11475

    瀏覽量

    213017
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    676

    瀏覽量

    33818
  • CMake
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    1470
收藏 人收藏

    評論

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

    LinuxCMake的使用3-不同目錄多個源文件

    上篇(LinuxCMake的使用2-同目錄下多個源文件)介紹了在同一目錄下有多個源文件時如何編寫CMakeLists.txt。
    的頭像 發(fā)表于 09-21 08:49 ?4473次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>CMake</b>的使用3-不同目錄多個源<b class='flag-5'>文件</b>

    Linux編程】如何使用gcc編譯代碼時輸出map文件

    Linux編程】如何使用gcc編譯代碼時輸出map文件
    的頭像 發(fā)表于 08-15 14:08 ?8858次閱讀
    【<b class='flag-5'>Linux</b>編程】如何使用gcc<b class='flag-5'>編譯</b>源<b class='flag-5'>代碼</b>時輸出map<b class='flag-5'>文件</b>?

    Windows下編譯工具CMake的安裝和最簡使用

    MCU的開發(fā)環(huán)境一般在Windows操作系統(tǒng)上,簡單的工程一般直接編寫Makefile文件后使用make工具構(gòu)建程序,復(fù)雜的工程一般借助CMake來生成Makefile文件后使用make工程構(gòu)建程序
    的頭像 發(fā)表于 11-14 10:18 ?1.1w次閱讀
    Windows下<b class='flag-5'>編譯</b>工具<b class='flag-5'>CMake</b>的安裝和最簡使用

    【DragonBoard 410c試用體驗(yàn)】使用cmake編譯opencv工程

    這邊帖子將介紹如何自己建立一個opencv工程在opencv的文件目錄下新建一個文件存放工程代碼sudo mkdir test我創(chuàng)建了一個test
    發(fā)表于 10-02 23:12

    STM32幫忙編譯文件,有原代碼,自已不會編譯,有人會搞嗎?

    STM32幫忙編譯文件,有原代碼,自已不會編譯,有人會搞嗎?報酬300元。
    發(fā)表于 07-17 09:03

    Cmake構(gòu)建linux工程的步驟

    一、Cmake構(gòu)建linux工程列出本人在使用的cmake文件,用于構(gòu)建工程,在cmake.txt文件
    發(fā)表于 12-16 07:16

    請問全志A40i能否單獨(dú)編譯驅(qū)動模塊?如何編譯

    ) modules#-C:后面的參數(shù)為linux內(nèi)核的頂層目錄#M:后面的參數(shù)為需要編譯文件的目錄make -C $(KDIR) M=$(PWD) modules請各位大佬指點(diǎn)一下目前全志A40i能否單獨(dú)
    發(fā)表于 01-04 06:18

    aarch64-linux-gnu-gcc能不能編譯文件系統(tǒng)

    第一次用這樣的開始環(huán)境,也是新手,虛擬機(jī)機(jī)已經(jīng)有了aarch64-linux-gnu-gcc,這個只用來編譯文件系統(tǒng)嗎?如果自己寫應(yīng)用,是不是還要安裝QT之類的環(huán)境?aarch64-linux-gnu-gcc能不能
    發(fā)表于 01-05 06:51

    交叉平臺開源編譯系統(tǒng)_cmake入門

    交叉平臺開源編譯系統(tǒng)_cmake入門
    發(fā)表于 01-22 13:59 ?9次下載

    cmake管理配置ROOT項(xiàng)目的方法

    配置文件組成。 ? 序號 文件文件說明 1 CMakeLists.txt? Cmake配置文件,用于組織項(xiàng)目的
    的頭像 發(fā)表于 01-18 17:45 ?5007次閱讀
    <b class='flag-5'>cmake</b>管理配置ROOT項(xiàng)目的方法

    Linux編程】如何使用gcc生成預(yù)編譯文件

    Linux編程】如何使用gcc生成預(yù)編譯文件
    的頭像 發(fā)表于 08-31 13:07 ?2206次閱讀
    【<b class='flag-5'>Linux</b>編程】如何使用gcc生成預(yù)<b class='flag-5'>編譯文件</b>?

    LinuxCMake的使用1-單個源文件

    linux中進(jìn)行C/C++開發(fā),一般都是先用編輯器寫好代碼,然后使用gcc工具來編譯程序。
    的頭像 發(fā)表于 09-18 17:56 ?2077次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>CMake</b>的使用1-單個源<b class='flag-5'>文件</b>

    LinuxCMake的使用2-同目錄下多個源文件

    上篇文章(LinuxCMake的使用1-單個源文件)介紹了編寫CMakeLists.txt的最基礎(chǔ)用法——只有一個源文件的情況。
    的頭像 發(fā)表于 09-20 08:57 ?2292次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>中</b><b class='flag-5'>CMake</b>的使用2-同目錄下多個源<b class='flag-5'>文件</b>

    Linux下如何使用CMake編譯程序

    CMake是開源、跨平臺的構(gòu)建工具,可以讓我們通過編寫簡單的配置文件去生成本地的Makefile,這個配置文件是獨(dú)立于運(yùn)行平臺和編譯器的,這樣就不用親自去編寫Makefile了,而且配
    的頭像 發(fā)表于 11-08 16:15 ?8228次閱讀
    在<b class='flag-5'>Linux</b>下如何使用<b class='flag-5'>CMake</b><b class='flag-5'>編譯</b>程序

    CMake構(gòu)建后的項(xiàng)目結(jié)構(gòu)解析

    地。下面我們將詳細(xì)解析這個目錄的結(jié)構(gòu)。 首先,我們來看一下build目錄的一級子目錄: CMakeFiles:這個目錄存放的是CMake在構(gòu)建過程中生成的臨時文件,包括
    的頭像 發(fā)表于 11-10 10:27 ?2677次閱讀
    <b class='flag-5'>CMake</b>構(gòu)建后的項(xiàng)目結(jié)構(gòu)解析
    主站蜘蛛池模板: 国产香蕉视频在线播放 | 国产小视频免费 | 日本一区二区高清免费不卡 | 日本三级黄视频 | 美女拍拍拍免费视频观看 | 九九热在线视频观看 | 亚洲免费二区三区 | 亚洲欧美在线播放 | 99久久成人国产精品免费 | 亚洲日本一区二区三区 | 亚洲人成电影在线小说网色 | 免费一级大毛片a一观看不卡 | 手机在线观看毛片 | 一级特黄国产高清毛片97看片 | 啊用力太猛了啊好深视频免费 | 天天干天天干天天插 | 亚洲免费在线观看视频 | 国产全黄三级三级 | 国产精品午夜寂寞视频 | 精品成人在线观看 | 中文字幕精品一区影音先锋 | 黄色aa毛片 | 天天摸天天做天天爽水多 | 二区视频在线 | 国模小丫大尺度啪啪人体 | 国产午夜精品理论片免费观看 | 日本x色视频| 男人免费看片 | bt在线www天堂资源网 | 最刺激黄a大片免费网站 | h视频免费高清在线观看 | 国内激情自拍 | 不卡视频一区 | 精品福利在线观看 | 免费观看在线aa | 三级黄色一级视频 | 日韩欧美国产电影 | 日日夜夜天天干 | 天天做天天操 | 在线看逼 | ww在线观看 |