日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(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),并把相應(yīng)的文件放入進去:

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自帶的預(yù)定義變量,同時他們的作用分別如下:

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

    文章

    809

    瀏覽量

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

    關(guān)注

    0

    文章

    399

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

    STM32CubeMX 能夠很方便的導出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 Cmake。CMake 工程可以很容易被
    發(fā)表于 04-15 16:07 ?0次下載

    EMC PCB設(shè)計總結(jié)

    EMC PCB設(shè)計總結(jié)
    發(fā)表于 03-23 14:52 ?13次下載

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

    STM32CubeMX 能夠很方便的導出 CMake 工程。例如,如下圖所示在 STM32CubeMX的 ToolChain/IDE 中選擇 CmakeCMake 工程可以很容易被
    發(fā)表于 03-11 10:46 ?0次下載

    使用CMake+VSCode環(huán)境移植ThreadX到極海G32R501 MCU

    我本人是 cmake+vscode 組合的忠實用戶,之前寫了一篇文章介紹了在 cmake+vscode 環(huán)境下開發(fā) G32R501 的一些實踐經(jīng)驗。這篇文章準備更進一步:移植一個ThreadX。
    的頭像 發(fā)表于 03-09 14:04 ?2684次閱讀
    使用<b class='flag-5'>CMake</b>+VSCode環(huán)境移植ThreadX到極海G32R501 MCU

    總結(jié)學習硬件設(shè)計要點

    用示波器測開關(guān)電源紋波。 數(shù)字電橋,也叫LCR、LCZ測試儀:用它可以測電感值、電容值、電阻值、Q值、D值等,精度比一般的萬用表要高。 信號發(fā)生器,也叫函數(shù)信號發(fā)生器:可以輸出正弦波、方波、角波
    發(fā)表于 01-06 06:40

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

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

    使用vscode和cmake工具開發(fā)極海G32R501 MCU

    目前極海官方提供的 IDE 開發(fā)環(huán)境有 Keil/IAR/Eclipse。都能很好的完成開發(fā),但是 VS Code 配合 CMake 工具是更加“現(xiàn)代”的C/C++開發(fā)環(huán)境,本文提供了在 VS Code 環(huán)境下的開發(fā)經(jīng)驗,以供參考。
    的頭像 發(fā)表于 11-25 14:45 ?3374次閱讀
    使用vscode和<b class='flag-5'>cmake</b>工具開發(fā)極海G32R501 MCU

    CubeMX 生成的 RTT 項目無法通過 cmake 編譯怎么解決?

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

    第1章 如何學習單片機

    ? 在錯誤的道路上日夜兼程,最終也無法成功,方法和思路絕對是最重要的。本章節(jié)講到的學習單片機的方法,都是作者學習單片機的無數(shù)經(jīng)驗和教訓總結(jié)出來的瑰寶。通過作者前面的披荊斬棘,開辟了道路,可以告訴讀者
    的頭像 發(fā)表于 10-10 10:32 ?686次閱讀

    【CPKCOR-RA8D1】1、VSCODE+CMAKE開發(fā)環(huán)境搭建

    Configurator是為不使用e2 studio的用戶而專門設(shè)計的圖形配置工具,可以生成MDK,IAR或是CMAKE工程。 3、安裝VSCODE擴展Renesas Platform 安裝了Renesas
    發(fā)表于 10-09 16:17

    致真精密儀器2025年中總結(jié)表彰大會成功舉行

    日前,致真精密儀器 2025年中總結(jié)表彰大會暨下半年戰(zhàn)略啟動會在公司總部圓滿落幕。青島、北京、杭州地員工及校企聯(lián)合實驗室?guī)熒€上/線下全體參會,共同回顧總結(jié)上半年發(fā)展成果,同時計劃部署下半年戰(zhàn)略規(guī)劃。
    的頭像 發(fā)表于 09-02 16:21 ?1370次閱讀

    ubuntu編譯stm32cubmax生成的cmake工程,在最后鏈接階段報錯,怎么解決?

    我是直接stm32cubmax 生成的cmake 工程,我在Ubuntu 編譯的時候找不到這個-lc_none , 但是我看了我的編譯器安裝路徑有一個nano.specs ,cmake 連接選項也有
    發(fā)表于 08-08 07:30

    SEGGER工具鏈集成到CMake和VS Code了

    SEGGER公司已將其嵌入式開發(fā)工具鏈集成到了廣泛使用的CMake構(gòu)建配置工具中,這意味著基于Visual Studio Code(VS Code)代碼編輯器的應(yīng)用開發(fā)可以方便的使用SEGGER工具實現(xiàn)了。
    的頭像 發(fā)表于 07-23 15:06 ?1218次閱讀

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

    電子發(fā)燒友網(wǎng)站提供《相關(guān)協(xié)議信號總結(jié).xlsx》資料免費下載
    發(fā)表于 06-25 15:34 ?5次下載
    高碑店市| 云安县| 临澧县| 城口县| 淮滨县| 武宁县| 潞西市| 武汉市| 渭源县| 太白县| 康乐县| 洪湖市| 屯昌县| 东海县| 张家界市| 延川县| 射洪县| 平潭县| 阿拉尔市| 梧州市| 会宁县| 云和县| 鄂伦春自治旗| 长顺县| 大姚县| 宜良县| 博罗县| 沅陵县| 岑巩县| 湟源县| 天台县| 呈贡县| 黄骅市| 渭南市| 富裕县| 桃园县| 朝阳县| 乐亭县| 夹江县| 全州县| 石景山区|