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

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

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

Cmake學(xué)習(xí)的總結(jié)(二)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 17:54 ? 次閱讀

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

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

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

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

cmake_minimum_required(VERSION 2.8)

project(main)

add_executable(main main.c test1.c)

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

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

    關(guān)注

    3

    文章

    4262

    瀏覽量

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

    關(guān)注

    0

    文章

    647

    瀏覽量

    32745
收藏 人收藏

    評論

    相關(guān)推薦

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

    科技自立自強(qiáng)不能停留在論文中、匯報(bào)中和總結(jié)中,而是要一個(gè)一個(gè)產(chǎn)品制造出來。本源,擁有中國第一條超導(dǎo)量子計(jì)算機(jī)制造鏈?!秷D說本源產(chǎn)品》以圖片形式,系列展示中國自主量子計(jì)算系列產(chǎn)品。產(chǎn)品簡介:本源量子
    的頭像 發(fā)表于 07-26 08:23 ?238次閱讀
    《圖說本源產(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ò)誤,請問是什么原因?

    執(zhí)行build.py menuconfig時(shí)報(bào)“Unknown CMake command \"__add_uf2_targets\".”錯(cuò)誤,請問這是什么原因?
    發(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編譯不通過怎么解決?

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

    嵌入式學(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

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

    VSCode中編譯產(chǎn)生一個(gè)問題,問題如下: 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īng)網(wǎng)絡(luò)計(jì)算框架,被廣泛應(yīng)用于各類嵌入式設(shè)備和移動(dòng)平臺(tái)。今天,讓我們一同跟隨共創(chuàng)
    發(fā)表于 05-29 17:24

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

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

    Linux下如何使用CMake編譯程序

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

    Windows下編譯工具CMake的安裝和最簡使用

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

    CMake構(gòu)建后的項(xiàng)目結(jié)構(gòu)解析

    一、 CMake構(gòu)建后的項(xiàng)目結(jié)構(gòu)解析(Analysis of the Project Structure After CMake Build) 1.1 CMake構(gòu)建后的目錄結(jié)構(gòu)(Directory
    的頭像 發(fā)表于 11-10 10:27 ?1722次閱讀
    <b class='flag-5'>CMake</b>構(gòu)建后的項(xiàng)目結(jié)構(gòu)解析

    在Linux下如何使用CMake編譯程序

    install cmake 安裝完成后,在終端下輸入: cmake -version 查看cmake版本 這樣cmake就安裝好了。
    的頭像 發(fā)表于 11-08 16:15 ?5677次閱讀
    在Linux下如何使用<b class='flag-5'>CMake</b>編譯程序

    模型算法總結(jié)

    本文將繼續(xù)修煉回歸模型算法,并總結(jié)了一些常用的除線性回歸模型之外的模型,其中包括一些單模型及集成學(xué)習(xí)器。 保序回歸、多項(xiàng)式回歸、多輸出回歸、多輸出K近鄰回歸、決策樹回歸、多輸出決策樹回歸
    的頭像 發(fā)表于 11-03 10:39 ?565次閱讀
    模型算法<b class='flag-5'>總結(jié)</b>

    全面總結(jié)機(jī)器學(xué)習(xí)中的優(yōu)化算法

    幾乎所有的機(jī)器學(xué)習(xí)算法最后都?xì)w結(jié)為求一個(gè)目標(biāo)函數(shù)的極值,即最優(yōu)化問題,例如對于有監(jiān)督學(xué)習(xí),我們要找到一個(gè)最佳的映射函數(shù)f (x),使得對訓(xùn)練樣本的損失函數(shù)最小化(最小化經(jīng)驗(yàn)風(fēng)險(xiǎn)或結(jié)構(gòu)風(fēng)險(xiǎn))。
    發(fā)表于 11-02 10:18 ?380次閱讀
    全面<b class='flag-5'>總結(jié)</b>機(jī)器<b class='flag-5'>學(xué)習(xí)</b>中的優(yōu)化算法

    MM32F0010使用總結(jié)

    MM32F0010使用總結(jié)
    的頭像 發(fā)表于 11-01 17:07 ?840次閱讀
    MM32F0010使用<b class='flag-5'>總結(jié)</b>