0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(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:54 ? 次閱讀

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

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

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

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

cmake_minimum_required(VERSION 2.8)

project(main)

add_executable(main main.c test1.c)

于是乎為了解決這種低效率的操作,在 cmake 里面有一條指令可以完全搞定這個(gè)問(wèn)題;不過(guò)為了說(shuō)明問(wèn)題,在這之前我又添加了兩個(gè)文件: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;

接下來(lái)我們的重點(diǎn)就來(lái)了,在cmake里面可以使用aux_source_directory(dir var)就可以搞定上面效率低的問(wèn)題,接下來(lái)我們?cè)贑MakeLists.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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

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

    關(guān)注

    0

    文章

    648

    瀏覽量

    32774
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    執(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

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

    idf.py menuconfig的時(shí)候總是,提示cmake301 error 提示沒有這個(gè)目錄,手動(dòng)創(chuàng)建目錄之后,還會(huì)出現(xiàn)更多依賴目錄 例: 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

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

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

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

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

    Espressif-IDE編譯報(bào)錯(cuò)的原因?

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

    VSCode中編譯過(guò)程cmake錯(cuò)誤的原因?

    VSCode中編譯產(chǎn)生一個(gè)問(wèn)題,問(wè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ì)算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域,NCNN(Netural Network Computer Vision)是一個(gè)輕量級(jí)的神經(jīng)網(wǎng)絡(luò)計(jì)算框架,被廣泛應(yīng)用于各類嵌入式設(shè)備和移動(dòng)平臺(tái)。今天,讓我們一同跟隨共創(chuàng)
    發(fā)表于 05-29 17:24

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

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

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

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

    熱控儀表元器件符號(hào)總結(jié)

    熱控儀表元器件符號(hào)總結(jié)
    的頭像 發(fā)表于 12-11 12:27 ?2823次閱讀

    Linux下如何使用CMake編譯程序

    今天分享一篇關(guān)于 cmake 的相關(guān)文章,通過(guò)這個(gè)工具可以生成本地的Makefile。讓我們不用去編寫復(fù)雜的Makefile。
    的頭像 發(fā)表于 11-21 09:28 ?1572次閱讀
    Linux下如何使用<b class='flag-5'>CMake</b>編譯程序

    Windows下編譯工具CMake的安裝和最簡(jiǎn)使用

    MCU的開發(fā)環(huán)境一般在Windows操作系統(tǒng)上,簡(jiǎn)單的工程一般直接編寫Makefile文件后使用make工具構(gòu)建程序,復(fù)雜的工程一般借助CMake來(lái)生成Makefile文件后使用make工程構(gòu)建程序
    的頭像 發(fā)表于 11-14 10:18 ?7223次閱讀
    Windows下編譯工具<b class='flag-5'>CMake</b>的安裝和最簡(jiǎn)使用