chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

Cmake學習的總結(jié)(三)

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 17:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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)建一個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)

上面第一個CMakeLists.txt里面陌生的語句解釋:

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

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.

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

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

include_directories (../include):把include目錄的頭文件包含進來。

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

EXECUTABLE_OUTPUT_PATH :目標二進制可執(zhí)行文件的存放位置

PROJECT_SOURCE_DIR:工程的根目錄

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

具體步驟過程我寫出來:

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

    關(guān)注

    2

    文章

    807

    瀏覽量

    42333
  • 嵌入式設(shè)計
    +關(guān)注

    關(guān)注

    0

    文章

    393

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    相關(guān)協(xié)議信號總結(jié)

    電子發(fā)燒友網(wǎng)站提供《相關(guān)協(xié)議信號總結(jié).xlsx》資料免費下載
    發(fā)表于 06-25 15:34 ?4次下載

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

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

    嵌入式AI技術(shù)之深度學習:數(shù)據(jù)樣本預處理過程中使用合適的特征變換對深度學習的意義

    ? 作者:蘇勇Andrew 使用神經(jīng)網(wǎng)絡(luò)實現(xiàn)機器學習,網(wǎng)絡(luò)的每個層都將對輸入的數(shù)據(jù)做一次抽象,多層神經(jīng)網(wǎng)絡(luò)構(gòu)成深度學習的框架,可以深度理解數(shù)據(jù)中所要表示的規(guī)律。從原理上看,使用深度學習幾乎可以描述
    的頭像 發(fā)表于 04-02 18:21 ?887次閱讀

    GaN E-HEMTs的PCB布局經(jīng)驗總結(jié)

    GaN E-HEMTs的PCB布局經(jīng)驗總結(jié)
    的頭像 發(fā)表于 03-13 15:52 ?561次閱讀
    GaN E-HEMTs的PCB布局經(jīng)驗<b class='flag-5'>總結(jié)</b>

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

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

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

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

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

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

    TOF學習總結(jié)

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

    關(guān)于RISC-V芯片的應用學習總結(jié)

    RISC-V芯片作為一種基于精簡指令集計算(RISC)原則的開源指令集架構(gòu)(ISA)芯片,近年來在多個領(lǐng)域展現(xiàn)出了廣泛的應用潛力和顯著優(yōu)勢。以下是對RISC-V芯片應用的總結(jié)。 RISC-V芯片
    發(fā)表于 01-29 08:38

    怎么用Clion開發(fā)APM32

    APM32 官方 SDK 中提供了種開發(fā)環(huán)境:Keil、IAR 和 Eclipse。不否認這種環(huán)境的強大,但是在 AI 時代做嵌入式開發(fā),用這種環(huán)境就顯得有點不夠優(yōu)雅了。本篇文章主要介紹怎么用
    的頭像 發(fā)表于 12-17 09:19 ?1696次閱讀
    怎么用Clion開發(fā)APM32

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

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

    學習go語言的過程踩過的坑

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

    AM17x功耗總結(jié)

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

    51單片機晶振的問題總結(jié)

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

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

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