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

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

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

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

cmake學(xué)習(xí)的總結(jié)(一)

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

掃碼添加小助手

加入工程師交流群

大家晚上好,在這里祝大家端午安康。今天給大家分享的是工程管理工具cmake,沒有先介紹makefile工程管理工具(坦白來說,這兩者都差不多,cmake最終還是會生成Makefile的,只是說cmake語法稍微比較簡單一些,沒有Makefile那么復(fù)雜?。>妥约簜€人經(jīng)歷,現(xiàn)在一般公司去寫Makefile和cmake的比較少(當(dāng)然去招聘網(wǎng)站上,有的時候還是可以看到有這個技能要求會寫的,所以說能夠自己寫出來是最為完美的?。?,一般都是直接使用廠家的Makefile或者Cmake;但作為學(xué)習(xí),還是要認(rèn)真學(xué)習(xí)里面的原理,比如出現(xiàn)了錯誤,你要能夠定位到錯誤并把它解決掉,因為可能錯誤就出現(xiàn)在配置好的Makefile或者Cmake里面,所以你要看的懂里面代碼的意思(也就是說,你知道這個工具是這樣用,但是也要明白它的原理機制,做到之知其然,知其所以個然來?。?,這樣才能把問題解決掉。

而且就個人見解,在傳統(tǒng)的linux工程管理用Makefile的比較多(Uboot里面也是大量使用Makefile來進行管理工程);在新型領(lǐng)域,比如物聯(lián)網(wǎng)開發(fā)(特別是一些開源項目等),用Cmake的比較多(當(dāng)然也有可能是例外哈?。?;好了,廢話就不多說了,開始來學(xué)習(xí)了:

一、Cmake學(xué)習(xí)使用:

1、安裝Cmake管理工具:

一般實際嵌入式linux開發(fā),幾乎都是用Ubuntu來開發(fā)的,因為那啥,安裝啥應(yīng)用程序的非常方便,只需一個命令“apt install + 應(yīng)用程序名稱” 大部分都直接搞定,不用再去配置(特殊的,就例外,還要一些其他相關(guān)配置!),安裝Cmake就是一條命令直接搞定:

root@txp-virtual-machine:/home/txp# apt install cmake

Reading package lists... Done

Building dependency tree

2、先從一個簡單示例,來得出一般書寫步驟規(guī)律:

這里先寫一個簡單的代碼工程main.c,然后再使用我們的cmake來管理代碼工程:

#include <stdio.h>

int main(void)

printf("TXP嵌入式");

return 0;

然后開始寫cmake工程管理文件,我在當(dāng)前目錄建立一個CMakeLists.txt文件,然后再往里面開始工程管理代碼

root@txp-virtual-machine:/home/txp/test# pwd

/home/txp/test

root@txp-virtual-machine:/home/txp/test# touch CMakeLists.txt

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

CMakeLists.txt main.c

CMakeLists.txt文件里面的內(nèi)容如下:

cmake_minimum_required (VERSION 2.8)

project (main)

add_executable(main main.c)

解釋一下這三條語句分別代表什么意思:

1、表示cmake最低執(zhí)行版本是2.8才有效來管理我們的工程項目。

2、表示整個工程名為main

3、表示最終要生成的elf文件的名字叫main,使用的源文件是main.c

現(xiàn)在我們來實現(xiàn)cmake的功能,在當(dāng)前目錄下,使用命令"cmake ."(.表示當(dāng)前目錄,而..表示上一級目錄),生成makefile等相關(guān)文件;然后再執(zhí)行一下make命令進行編譯工程,就能生成可執(zhí)行文件main了,同時也會生成makefile文件,最后就可以執(zhí)行可執(zhí)行main文件,就能得到我們所要的結(jié)果:

root@txp-virtual-machine:/home/txp/test# cmake .

-- The C compiler identification is GNU 4.8.4

-- The CXX compiler identification is GNU 4.8.4

-- Check for working C compiler: /usr/bin/cc

-- Check for working C compiler: /usr/bin/cc -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Check for working CXX compiler: /usr/bin/c++

-- Check for working CXX compiler: /usr/bin/c++ -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Configuring done

-- Generating done

-- Build files have been written to: /home/txp/test

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

CMakeCache.txt CMakeFiles cmake_install.cmake CMakeLists.txt main main.c Makefile

root@txp-virtual-machine:/home/txp/test# make

Scanning dependencies of target main

[100%] Building C object CMakeFiles/main.dir/main.c.o

Linking C executable main

[100%] Built target main

root@txp-virtual-machine:/home/txp/test# ./main

TXP嵌入式

如果你再好奇一下的話,可以打開看看Makefile里面的內(nèi)容是啥,很容易想到是用makefile的方式來實現(xiàn)對工程main的管理,這里我就不畫蛇添足把源代碼貼出來了。cmake_install.cmake 是一些相關(guān)配置選項:

# Install script for directory: /home/txp/test

# Set the install prefix

IF(NOT DEFINED CMAKE_INSTALL_PREFIX)

SET(CMAKE_INSTALL_PREFIX "/usr/local")

ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)

STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")

# Set the install configuration name.

IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)

IF(BUILD_TYPE)

STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""

CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")

ELSE(BUILD_TYPE)

SET(CMAKE_INSTALL_CONFIG_NAME "")

ENDIF(BUILD_TYPE)

MESSAGE(STATUS "Install configuration: "${CMAKE_INSTALL_CONFIG_NAME}"")

ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)

# Set the component getting installed.

IF(NOT CMAKE_INSTALL_COMPONENT)

IF(COMPONENT)

MESSAGE(STATUS "Install component: "${COMPONENT}"")

SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")

ELSE(COMPONENT)

SET(CMAKE_INSTALL_COMPONENT)

ENDIF(COMPONENT)

ENDIF(NOT CMAKE_INSTALL_COMPONENT)

# Install shared libraries without execute permission?

IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)

SET(CMAKE_INSTALL_SO_NO_EXE "1")

ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)

IF(CMAKE_INSTALL_COMPONENT)

SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")

ELSE(CMAKE_INSTALL_COMPONENT)

SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt")

ENDIF(CMAKE_INSTALL_COMPONENT)

FILE(WRITE "/home/txp/test/${CMAKE_INSTALL_MANIFEST}" "")

FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES})

FILE(APPEND "/home/txp/test/${CMAKE_INSTALL_MANIFEST}" "${file}")

ENDFOREACH(file)

而CMakeFiles是一個文件夾,里面文件內(nèi)容如下:

root@txp-virtual-machine:/home/txp/test/CMakeFiles# ls

2.8.12.2 cmake.check_cache CMakeDirectoryInformation.cmake

CMakeOutput.log CMakeTmp main.dir Makefile2

Makefile.cmake progress.marks TargetDirectories.txt

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

    關(guān)注

    38

    文章

    1405

    瀏覽量

    108405
  • Makefile
    +關(guān)注

    關(guān)注

    1

    文章

    125

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

    STM32CubeMX 能夠很方便的導(dǎo)出 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)驗。這篇文章準(zhǔn)備更進
    的頭像 發(fā)表于 03-09 14:04 ?2561次閱讀
    使用<b class='flag-5'>CMake</b>+VSCode環(huán)境移植ThreadX到極海G32R501 MCU

    安路科技2025年度總結(jié)

    2026年2月6日,安路科技2025年度總結(jié)大會暨表彰盛典在上海圓滿召開,公司全員齊聚堂,總結(jié)過去,展望未來。會上,公司管理層發(fā)表了主題為“擁抱變化,共同成長”的戰(zhàn)略展望。
    的頭像 發(fā)表于 02-24 11:25 ?805次閱讀

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

    大家有所重視。 調(diào)試方法,多種多樣,視情況而定,不能概而論,筆者總結(jié)了以下幾個方法: a、示波器測量。當(dāng)然,首先你得清楚你設(shè)計出來的電路,會出什么樣的波形,才知道測出來對不對,也就是說,理論不行
    發(fā)表于 01-06 06:40

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

    CMake 識別的源碼路徑與緩存中記錄的不致。 錯誤原因分析 這個錯誤提示非常明確: CMake 當(dāng)前嘗試使用 D:/v5.5.1/frameworks/esp-idf-v5.5.1 路徑
    發(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 ?3314次閱讀
    使用vscode和<b class='flag-5'>cmake</b>工具開發(fā)極海G32R501 MCU

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

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

    第1章 如何學(xué)習(xí)單片機

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

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

    , BSP_DELAY_UNITS_MILLISECONDS); } 在CMakeLists.txt中增加句:set(CMAKE
    發(fā)表于 10-09 16:17

    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 ?1161次閱讀

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

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