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

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

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

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

Cmake學(xué)習(xí)的總結(jié)(三)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 17:45 ? 次閱讀

大家好,在上一篇文Cmake文章里面,我們同樣在文章的最后面留了一個(gè)問(wèn)題實(shí)現(xiàn),就是把源文件放到src目錄下,把頭文件放到include目錄下去,這樣也比較符合別人和自己日后去配置工程(一看到這兩個(gè)目就能知道啥意思了,清晰明了),同時(shí)在linux環(huán)境下生成的elf文件放到bin目錄下;不過(guò)在文章發(fā)出去了幾天,后面有網(wǎng)友又有提出了一些新的需求:

(如果網(wǎng)友有啥實(shí)際需要,可以私聊我,只要在我自身能力之內(nèi),我都可以寫(xiě)成文章出來(lái)分享給大家)熟悉我的網(wǎng)友都知道,我也是小白,會(huì)從很基礎(chǔ)的東西開(kāi)始分享開(kāi)始,雖然都是比較理論化的東西,但是都是點(diǎn)滴的積累(有的時(shí)候,其實(shí)你真正在有些項(xiàng)目開(kāi)發(fā)過(guò)程中,學(xué)到的東西不是很多,更多的是依靠平時(shí)的基礎(chǔ)積累加以擴(kuò)展,所以總的來(lái)說(shuō),平時(shí)的折騰還是非常值得!);同時(shí)有啥比較實(shí)際一點(diǎn)的需求咋也慢慢深入,一步步來(lái),穩(wěn)扎穩(wěn)打,知識(shí)性的東西來(lái)不得半點(diǎn)虛假和馬虎。好了,開(kāi)始進(jìn)入主題分享了:

一、src、include、bin目錄的使用(更加正規(guī)化):

1、先開(kāi)始創(chuàng)建這三個(gè)目錄結(jié)構(gòu),并把相應(yīng)的文件放入進(jìn)去:

root@txp-virtual-machine:/home/txp/testmy# mkdir bin build src include

root@txp-virtual-machine:/home/txp/testmy# ls

bin build include src

include目錄下文件放入(這里test1.h和test2.h的內(nèi)容是接續(xù)前面的文章里面的內(nèi)容,這里我就不再造輪子了):

root@txp-virtual-machine:/home/txp/testmy/include# ls

test1.h test2.h

src目錄下文件放入(這里test1.c和test2.c的內(nèi)容是接續(xù)前面的文章里面的內(nèi)容,這里我就不再造輪子了):

root@txp-virtual-machine:/home/txp/testmy/src# ls

main.c test1.c test2.c

最終我們還要在testmy目錄和src目錄下都創(chuàng)建一個(gè)CMakeLists.txt:

/*testmy目錄下的CMakeLists.txt內(nèi)容:*/

cmake_minimum_required(VERSION 2.8)

project(main)

add_subdirectory(src)

/*src目下CMakeLists.txt內(nèi)容:*/

aux_source_directory(. SRC_LIST)

include_directories(../include)

add_executable(main ${SRC_LIST})

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

上面第一個(gè)CMakeLists.txt里面陌生的語(yǔ)句解釋?zhuān)?/p>

add_subdirectory(src)意思是可以向當(dāng)前工程添加存放源文件的子目錄,并可以指定中間二進(jìn)制和目標(biāo)二進(jìn)制的存放位置(subdirectory字母就是子目錄的意思,所以意思是:這里指定src目錄下存放了源文件,當(dāng)執(zhí)行cmake時(shí),就會(huì)進(jìn)入src目錄下去找src目錄下的CMakeLists.txt,所以在src目錄下也建立一個(gè)CMakeLists.txt),官方用法是這樣的(不過(guò)這里暫時(shí)沒(méi)去深究):

add_subdirectory

----------------

Add a subdirectory to the build.

::

add_subdirectory(source_dir [binary_dir]

[EXCLUDE_FROM_ALL])

Add a subdirectory to the build. The source_dir specifies the

directory in which the source CMakeLists.txt and code files are

located. If it is a relative path it will be evaluated with respect

to the current directory (the typical usage), but it may also be an

absolute path. The binary_dir specifies the directory in which to

place the output files. If it is a relative path it will be evaluated

with respect to the current output directory, but it may also be an

absolute path. If binary_dir is not specified, the value of

source_dir, before expanding any relative path, will be used (the

typical usage). The CMakeLists.txt file in the specified source

directory will be processed immediately by CMake before processing in

the current input file continues beyond this command.

If the EXCLUDE_FROM_ALL argument is provided then targets in the

subdirectory will not be included in the ALL target of the parent

directory by default, and will be excluded from IDE project files.

Users must explicitly build targets in the subdirectory. This is

meant for use when the subdirectory contains a separate part of the

project that is useful but not necessary, such as a set of examples.

Typically the subdirectory should contain its own project() command

invocation so that a full build system will be generated in the

subdirectory (such as a VS IDE solution file). Note that inter-target

dependencies supercede this exclusion. If a target built by the

parent project depends on a target in the subdirectory, the dependee

target will be included in the parent project build system to satisfy

the dependency.

第二個(gè)CMakeLists.txt內(nèi)容分析:

aux_source_directory (. SRC_LIST):把當(dāng)前目錄的源文件:main.c test1.c test2.c都放到變量SRC_LIST里面去。

include_directories (../include):把include目錄的頭文件包含進(jìn)來(lái)。

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin):這里面的EXECUTABLE_OUT_PATH和PROJECT_SOURCE_DIR是CMake自帶的預(yù)定義變量,同時(shí)他們的作用分別如下:

EXECUTABLE_OUTPUT_PATH :目標(biāo)二進(jìn)制可執(zhí)行文件的存放位置

PROJECT_SOURCE_DIR:工程的根目錄

所以最終生成的elf文件(也就是我們的最終可執(zhí)行文件)就會(huì)放到bin目錄下,然后我們build目錄下會(huì)成一些配置中間文件。

具體步驟過(guò)程我寫(xiě)出來(lái):

root@txp-virtual-machine:/home/txp/testmy# vim CMakeLists.txt

root@txp-virtual-machine:/home/txp/testmy# cd src

root@txp-virtual-machine:/home/txp/testmy/src# ls

main.c test1.c test2.c

root@txp-virtual-machine:/home/txp/testmy/src# vim CMakeLists.txt

審核編輯:符乾江
聲明:本文內(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)投訴
收藏 人收藏

    評(píng)論

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

    雙極型極管放大電路的種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載

      本文檔的主要內(nèi)容詳細(xì)介紹的是雙極型極管放大電路的種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載包括了:共集電極放大電路,共基極放大電路,種基本組態(tài)的比較   輸入信號(hào)ui
    發(fā)表于 04-11 16:39 ?25次下載

    使用STM32CubeMX生成CMake工程中的FLASH.ld被更改怎么解決?

    使用STM32CubeMX生成CMake工程之后,對(duì)STM32xxxx_FLASH.ld進(jìn)行了修改。然后再次使用STM32CubeMX對(duì)工程進(jìn)行修改的時(shí)候,STM32xxxx_FLASH.ld文件匯總被修改的部分會(huì)被恢復(fù)原狀。請(qǐng)問(wèn)各位有沒(méi)有好的辦法能夠解決這個(gè)問(wèn)題,煩請(qǐng)指教!!!
    發(fā)表于 03-10 06:52

    在CubeMX V6.13.0版本上配置的CMake工程無(wú)法通過(guò)編譯怎么解決?

    在 CubeMX V6.13.0 版本上配置的 CMake 工程無(wú)法通過(guò)編譯,報(bào)錯(cuò)如下圖
    發(fā)表于 03-07 16:59

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

    嘗試從源版本 2021.3 編譯OpenVINO? 錯(cuò)誤: ~/項(xiàng)目/OpenVINO/cmake-build-debug/_deps/ext_onnx-src/onnx/onnx_pb.h
    發(fā)表于 03-05 08:29

    TOF學(xué)習(xí)總結(jié)

    iToF(間接飛行時(shí)間)技術(shù)中,波長(zhǎng)越短,分辨細(xì)節(jié)的能力越好,主要原因與光的波動(dòng)特性和調(diào)制信號(hào)的特性密切相關(guān)。以下是詳細(xì)解釋?zhuān)?. 光的波動(dòng)特性:波長(zhǎng)與分辨率的關(guān)系波長(zhǎng)越短,空間分辨率越高:光的波長(zhǎng)決定了其能夠分辨的最小細(xì)節(jié)。根據(jù)光學(xué)理論,分辨率與波長(zhǎng)成反比,波長(zhǎng)越短,能夠分辨的特征尺寸越小。例如,可見(jiàn)光的波長(zhǎng)(400-700 nm)比紅外光(通常用于iToF,波長(zhǎng)約850 nm)更短,因此可見(jiàn)光能夠分辨更細(xì)微的細(xì)節(jié)。衍射極限:光的衍
    發(fā)表于 02-25 17:49 ?0次下載

    關(guān)于中斷知識(shí)學(xué)習(xí)總結(jié)筆記

    《關(guān)于中斷知識(shí)學(xué)習(xí)總結(jié)筆記》 一、中斷的核心概念 中斷是計(jì)算機(jī)運(yùn)行過(guò)程中的一種重要機(jī)制,它能夠使計(jì)算機(jī)在執(zhí)行主程序時(shí),暫停當(dāng)前任務(wù)去響應(yīng)特定的事件或請(qǐng)求,處理完成后再返回主程序繼續(xù)執(zhí)行。這就像是一個(gè)
    發(fā)表于 11-23 11:23

    學(xué)習(xí)go語(yǔ)言的過(guò)程踩過(guò)的坑

    作為一個(gè)5年的phper,這兩年公司和個(gè)人都在順應(yīng)技術(shù)趨勢(shì),新項(xiàng)目慢慢從php轉(zhuǎn)向了go語(yǔ)言,從2021年到現(xiàn)在,筆者手上也先后開(kāi)發(fā)了兩個(gè)go項(xiàng)目。在學(xué)習(xí)go語(yǔ)言的過(guò)程中也學(xué)習(xí)總結(jié)了一些相關(guān)的東西,這篇文章就分享下自己踩過(guò)的一
    的頭像 發(fā)表于 11-11 09:22 ?417次閱讀

    AM17x功耗總結(jié)

    電子發(fā)燒友網(wǎng)站提供《AM17x功耗總結(jié).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 09:14 ?0次下載
    AM17x功耗<b class='flag-5'>總結(jié)</b>

    51單片機(jī)晶振的問(wèn)題總結(jié)

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)晶振的問(wèn)題總結(jié).doc》資料免費(fèi)下載
    發(fā)表于 09-07 09:32 ?0次下載

    國(guó)產(chǎn)芯上運(yùn)行TinyMaxi輕量級(jí)的神經(jīng)網(wǎng)絡(luò)推理庫(kù)-米爾基于芯馳D9國(guó)產(chǎn)商顯板

    是面向單片機(jī)的超輕量級(jí)的神經(jīng)網(wǎng)絡(luò)推理庫(kù),即 TinyML 推理庫(kù),可以讓你在任意單片機(jī)上運(yùn)行輕量級(jí)深度學(xué)習(xí)模型~ 開(kāi)源地址:https://github.com/sipeed/TinyMaix搭建
    發(fā)表于 08-09 18:26

    人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)是什么

    在科技日新月異的今天,人工智能(Artificial Intelligence, AI)、機(jī)器學(xué)習(xí)(Machine Learning, ML)和深度學(xué)習(xí)(Deep Learning, DL)已成為
    的頭像 發(fā)表于 07-03 18:22 ?2581次閱讀

    執(zhí)行build.py menuconfig時(shí)報(bào)“ Unknown CMake command \"__add_uf2_targets\".”錯(cuò)誤,請(qǐng)問(wèn)是什么原因?

    執(zhí)行build.py menuconfig時(shí)報(bào)“Unknown CMake command \"__add_uf2_targets\".”錯(cuò)誤,請(qǐng)問(wèn)這是什么原因?
    發(fā)表于 06-27 06:21

    大模型技術(shù)及趨勢(shì)總結(jié)

    本篇文章旨在希望大家對(duì)大模型的本質(zhì)、技術(shù)和發(fā)展趨勢(shì)有簡(jiǎn)單的了解。由于近期大模型技術(shù)發(fā)展很快,這里對(duì)大模型的技術(shù)、本質(zhì)及未來(lái)趨勢(shì)進(jìn)行總結(jié)和探討時(shí),因?yàn)樗接邢蓿杪┰谒y免。請(qǐng)大家諒解。 引言 大模型
    的頭像 發(fā)表于 06-21 17:38 ?943次閱讀
    大模型技術(shù)及趨勢(shì)<b class='flag-5'>總結(jié)</b>

    idf.py menuconfig的時(shí)候總是提示cmake301 error的原因?

    idf.py menuconfig的時(shí)候總是,提示cmake301 error 提示沒(méi)有這個(gè)目錄,手動(dòng)創(chuàng)建目錄之后,還會(huì)出現(xiàn)更多依賴(lài)目錄 例: CMake Error at /home
    發(fā)表于 06-20 06:01

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

    CMake Error at E:/Work/eclipse-esp/esp-idf/tools/cmake/component.cmake:305 (message): Include
    發(fā)表于 06-18 06:15
    主站蜘蛛池模板: 乱子伦xxxx厨房 | 免费91视频 | 狠狠色狠狠色综合日日小蛇 | 国产精品综合色区在线观看 | 午夜秒播| 美女扒开内裤让男人桶 | 午夜三级网 | 欧美特黄三级在线观看 | 亚洲天堂不卡 | 国产精品高清免费网站 | 色狠狠网| 天堂中文网 | 国产特级 | 日本xxxxbbbb | 曰本福利写真片视频在线 | 加勒比精品久久一区二区三区 | 特黄色片| 天天影院网 | 日韩一卡2卡三卡4卡无卡网站 | 欧美一区二区三区男人的天堂 | 九九热国产 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 久久精品国产99国产精品澳门 | 亚洲综合色婷婷中文字幕 | 久久伊人影视 | 欧美一区二区三区视频 | 久热国产精品 | 色爽爽爽| 亚洲国产成人久久三区 | 一级免费看片 | 午夜大片男女免费观看爽爽爽尤物 | 男人不识本站 | 久青草久青草高清在线播放 | 婷婷丁香四月 | 成年视频在线观看 | 久久美女视频 | 欧美婷婷综合 | 黑色丝袜美女被网站 | 1024你懂的国产欧美日韩在 | 四虎国产精品免费入口 | 国产色婷婷精品综合在线 |