RM新时代网站-首页

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 17:54 ? 次閱讀

大家好,上次給大家分享了第一篇 cmake 文章:cmake學(xué)習(xí)總結(jié)(一),今天繼續(xù)給大家分享cmake。那么廢話就不多說,開始內(nèi)容分享。

用好 Cmake,高興一整天(甚至……):

1、多個源文件,使用命令 aux_source_directory(dir var):

在上一篇文章最后結(jié)尾的時候,有一個問題,就是在同一目錄下面,有多個源文件的時候,這個時候你不能都往下面第三條命令里面一直手動添加源文件,那工作效率多低啊:

cmake_minimum_required(VERSION 2.8)

project(main)

add_executable(main main.c test1.c)

于是乎為了解決這種低效率的操作,在 cmake 里面有一條指令可以完全搞定這個問題;不過為了說明問題,在這之前我又添加了兩個文件:test2.c 和 test2.h:

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

1 cmake_install.cmake main.c test1.h touch1.c

CMakeCache.txt CMakeLists.txt Makefile test2.c touch1.h

CMakeFiles main test1.c test2.h

test2.c內(nèi)容如下:

#include <stdio.h>

#include "test2.h"

void func1()

printf("i like the cmake");

test2.h內(nèi)容如下:

#ifndef _TEST2_H_

#define _TEST2_H_

void func1();

#endif

最后main.c里面調(diào)用了func1函數(shù):

#include <stdio.h>

#include "test1.h"

#include "test2.h"

int main(void)

func1();

func(8);

printf("TXP嵌入式");

return 0;

接下來我們的重點就來了,在cmake里面可以使用aux_source_directory(dir var)就可以搞定上面效率低的問題,接下來我們在CMakeLists.txt這樣操作:

cmake_minimum_required(VERSION 2.8)

project(main)

aux_source_directory(. SRC_LIST)

add_executable(main ${SRC_LIST})

然后再進(jìn)行編譯:

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

-- Configuring done

-- Generating done

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

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

Scanning dependencies of target main

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

[ 50%] Linking C executable main

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

i like the cmake

the b is 8

TXP嵌入式

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

    關(guān)注

    3

    文章

    4327

    瀏覽量

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

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    《AI for Science:人工智能驅(qū)動科學(xué)創(chuàng)新》第章AI for Science的技術(shù)支撐學(xué)習(xí)心得

    for Science的技術(shù)支撐”的學(xué)習(xí)心得,可以從以下幾個方面進(jìn)行歸納和總結(jié): 1. 技術(shù)基礎(chǔ)的深入理解 在閱讀第章的過程中,我對于AI for Science所需的技術(shù)基礎(chǔ)有了更加深入的理解。這一章詳細(xì)闡述了
    發(fā)表于 10-14 09:16

    《圖說本源產(chǎn)品》系列之:量子計算全物理體系學(xué)習(xí)機(jī)

    科技自立自強(qiáng)不能停留在論文中、匯報中和總結(jié)中,而是要一個一個產(chǎn)品制造出來。本源,擁有中國第一條超導(dǎo)量子計算機(jī)制造鏈?!秷D說本源產(chǎn)品》以圖片形式,系列展示中國自主量子計算系列產(chǎn)品。產(chǎn)品簡介:本源量子
    的頭像 發(fā)表于 07-26 08:23 ?331次閱讀
    《圖說本源產(chǎn)品》系列之<b class='flag-5'>二</b>:量子計算全物理體系<b class='flag-5'>學(xué)習(xí)</b>機(jī)

    執(zhí)行build.py menuconfig時報“ Unknown CMake command \"__add_uf2_targets\".”錯誤,請問是什么原因?

    執(zhí)行build.py menuconfig時報“Unknown CMake command \"__add_uf2_targets\".”錯誤,請問這是什么原因?
    發(fā)表于 06-27 06:21

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

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

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

    CMake Error at E:/Work/eclipse-esp/esp-idf/tools/cmake/component.cmake:305 (message): Include
    發(fā)表于 06-18 06:15

    華為PCBA檢查規(guī)范設(shè)計總結(jié)

    福利來啦! 給大家分享《華為PCBA檢查規(guī)范設(shè)計總結(jié)
    的頭像 發(fā)表于 06-15 16:25 ?2125次閱讀
    華為PCBA檢查規(guī)范設(shè)計<b class='flag-5'>總結(jié)</b>

    嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu中編譯OpenCV庫

    :Ubuntu18.04 OpenCV版本:OpenCV3.4.1 一、獲取Opencv源碼 從OpenCV官網(wǎng)下載OpenCV源碼(opencv.org/releases/page/5/) 、搭建
    發(fā)表于 06-07 09:21

    Espressif-IDE編譯報錯的原因?

    大家好。我頭一回使用Espressif-IDE,開始學(xué)習(xí)。我新建了工程,使用hello_world模版,編譯時報錯,是關(guān)于python的。錯誤如下: C
    發(fā)表于 06-07 07:34

    VSCode中編譯過程cmake錯誤的原因?

    VSCode中編譯產(chǎn)生一個問題,問題如下: CMake Error at CMakeLists.txt:1 (idf_component_register):Unknown CMake command
    發(fā)表于 06-06 06:48

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN?

    在計算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域,NCNN(Netural Network Computer Vision)是一個輕量級的神經(jīng)網(wǎng)絡(luò)計算框架,被廣泛應(yīng)用于各類嵌入式設(shè)備和移動平臺。今天,讓我們一同跟隨共創(chuàng)
    發(fā)表于 05-29 17:24

    飛凌嵌入式ElfBoard ELF 1板卡-如何移植NCNN

    在計算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域,NCNN(Netural Network Computer Vision)是一個輕量級的神經(jīng)網(wǎng)絡(luò)計算框架,被廣泛應(yīng)用于各類嵌入式設(shè)備和移動平臺。今天,讓我們一同跟隨共創(chuàng)
    發(fā)表于 05-29 08:53

    RISC-V Linux開發(fā)環(huán)境腳本

    比較多的RISC-V SOC Linux開發(fā)環(huán)境使用CMake/Makefile,雖然也知道些怎么用,但有沒完整系統(tǒng)的這方面學(xué)習(xí)資料?如語法、腳本鏈接結(jié)構(gòu)等,可以分享下深入學(xué)習(xí)
    發(fā)表于 03-31 12:48

    請問一下CMake和Make之間的區(qū)別有哪些?

    CMake和Make是構(gòu)建軟件,其工作涉及將源代碼轉(zhuǎn)換為可執(zhí)行程序。CMake和Make是旨在實現(xiàn)構(gòu)建過程自動化的工具,幫助開發(fā)者節(jié)省時間和精力。
    的頭像 發(fā)表于 02-27 11:44 ?1755次閱讀

    單片機(jī)編程實例總結(jié)

    單片機(jī)編程實例總結(jié)
    的頭像 發(fā)表于 01-16 09:17 ?1036次閱讀
    RM新时代网站-首页