一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

嵌入式開發(fā):VSCode中,基于CMake開發(fā)

 開心果NeedCar 2023-06-21 發(fā)布于上海

作為一個程序員,VSCode、CMake并不陌生,然而,在MCU的開發(fā)過程中,底層很少選擇使用CMake去編譯工程,多數(shù)還是使用目標芯片對應的工具鏈編譯,常見的編譯器:HighTec、Tasking、GreenHills、Keil等等。如果進行SOA(Service Oriented Architecture)架構(gòu)開發(fā),使用一些軟實時操作系統(tǒng)時(eg:Linux),搭配CMake使用,構(gòu)建進程的編譯會方便很多。本文,主要介紹VSCode+CMake環(huán)境搭建以及示例。

提示:本文操作系統(tǒng)Windows10 64b

1、VSCode、CMake安裝

關(guān)于VSCode、CMake的安裝教程,網(wǎng)上很多,本文不過多贅述。

(一)VSCode官方下載地址

鏈接:
https://code./download
(二)CMake的官方下載地址
鏈接:https:///download/
(三)MinGW的官方下載地址
鏈接:https:///projects/mingw/
(四)VSCode插件安裝

1、CMake、CMake Tools插件安裝,如下所示:

2、C/C++、C/C++ Extension Pack插件安裝,如下所示:

2、源文件編寫及編譯

編寫源文件之前,先創(chuàng)建一個工作區(qū),操作如下:文件->打開文件夾...(選擇一個目標文件夾)。

本文在VSCode_CMake文件夾下創(chuàng)建工作區(qū),如下所示:

(一)CMakeLists.txt文件編寫

CMakeLists.txt文件內(nèi)容如下所示:

# 設(shè)置項目名稱project(CMakePro)
set(CMAKE_C_COMPILER "gcc")set(CMAKE_CXX_COMPILER "g++")
#指定CMake版本set(CMAKE_CXX_STANDARD 11)
# 將當前文件中的所有文件放到變量DIR_TOOT_SRCS中# aux_source_directory 查找某路徑下的所有源文件,"."表示當前路徑aux_source_directory(. DIR_TOOT_SRCS)# 將變量DIR_TOOT_SRCS中的源文件編譯源碼生成目標,目標文件名稱CMakeProadd_executable(CMakePro ${DIR_TOOT_SRCS})
(二)源文件編輯
main.cpp文件內(nèi)容如下所示:
#include <iostream>#include <vector>#include <string>
using namespace std;
int main(){ vector<string> MsgInfo {"HelloWorld","VSCode","CMake"};
for (const string& info : MsgInfo) { cout << info << " " << endl; } getchar();}

(三)另存工作區(qū)

具體操作:文件->將工作區(qū)另存為...

自定義工作的名稱,本文VSCode_CMake,文件后綴.code-workspace,如下所示:

VSCode_CMake.code-workspace內(nèi)容如下所示,設(shè)置CMake的IDE,本文選則"MinGW Makefiles"。

添加內(nèi)容如下所示:
"cmake.generator""MinGW Makefiles"

使用快捷鍵:Ctrl+Shift+P,選擇目標CMake工具包,如下所示:

本文選擇"GCC 12.2.0 x86_64-w64-mingw32",如下所示:

3、編輯配置文件

(1)創(chuàng)建.vscode文件夾

(2)創(chuàng)建c_cpp_properties.json文件
文件內(nèi)容如下:
{    "configurations": [      {        "name": "GCC",        "defines": ["_DEBUG", "UNICODE", "_UNICODE"],        //g++路徑        "compilerPath": "C:/msys64/mingw64/bin/g++.exe",        "cStandard": "c11",        "cppStandard": "c++17",        "intelliSenseMode""windows-gcc-x64",        "configurationProvider": "vector-of-bool.cmake-tools",        "includePath": [          "${default}",          "${workspaceFolder}/**"        ]      }    ],    "version": 4}
(3)創(chuàng)建launch.json文件
launch.json文件內(nèi)容如下所示:
{    "version": "0.2.0",    "configurations": [      {        "name": "C/C++: g++.exe build and debug active file",        "type": "cppdbg",        "request": "launch",        "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",        "args": [],        "stopAtEntry": false,        "cwd": "${fileDirname}",        "environment": [],        "externalConsole": true,        "MIMode": "gdb",        "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",        "setupCommands": [          {            "description": "Enable pretty-printing for gdb",            "text": "-enable-pretty-printing",            "ignoreFailures": true          }        ],        "preLaunchTask": "g++"      }    ]  }
(4)創(chuàng)建tasks.json文件
tasks.json文件內(nèi)容如下所示:
{    "tasks": [      {        "type": "cppbuild",        "label": "g++",        "command": "C:\\msys64\\mingw64\\bin\\g++.exe",        "args": [          "-fdiagnostics-color=always",          "-g",          "${file}",          "-o",          "${fileDirname}\\${fileBasenameNoExtension}.exe"        ],        "options": {          "cwd": "${fileDirname}"        },        "problemMatcher": ["$gcc"],        "group": {          "kind": "build",          "isDefault": true        },        "detail": "Task generated by Debugger."      }    ],    "version": "2.0.0"  }

當然,如上的*.json文件也可以通過"調(diào)試配置"自動生成,選擇調(diào)試方式,會自動生成對應的*.json文件,如下所示:

注意:tasks.json文件的label與launch.json文件中的preLaunchTask保持一致,如下所示:

參考資料https://code./docs/cpp/config-mingw

4、使用CMake編譯源文件

可以在終端使用命令查看CMake和Make的安裝情況,如下所示:

如果習慣了bash命令,只要安裝了git,可以切換shell,在終端輸入:bash,如下所示:

CMake編譯之前,可以先將本地安裝的CMake.exe路徑添加到"設(shè)置"中,如下所示:

(一)終端中,手動進行源文件編譯

1、使用cmake命令,如下所示:

cmake -S . -B Build -G "MinGW Makefiles"
這里為什么使用上述命令,可以參考如下鏈接:
https:///cmake/help/latest/manual/cmake.1.html

提示:-B 構(gòu)建項目文件所在的目錄,-G(Generator ),設(shè)置 IDE。

在源文件對應的文件夾下會自動生成一個build文件夾,如下所示:

2、使用make命令,生成可執(zhí)行文件(CMakePro),如下所示:

生成的CMakePro.exe文件如下所示:

提示:如上的操作可以通過批處理文件操作。
(二)使用CMake進行源文件編譯
1、單擊"CMake"圖標,配置項目

2、進行項目配置,如下所示

3、編譯文件,通過"輸出"窗口查看輸出信息,如下所示:

生成文件,均輸出到build文件夾,與手動執(zhí)行命令產(chǎn)生的結(jié)果一致,如下所示:

最后,進行目標文件,在終端(eg:PowerShell)運行可執(zhí)行文件,本文示例如下:

5、Debug程序

(一)在調(diào)試C/C++文件中選擇"調(diào)試C/C++文件",如下所示:

(二)程序調(diào)試如下所示:

提示:生成可執(zhí)行文件以后,方可調(diào)試。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久精品色妇熟妇丰满人妻91| 国产精品久久男人的天堂| 欧美区一区二在线播放| 乱女午夜精品一区二区三区| 欧美在线视频一区观看| 高清不卡视频在线观看| 国产毛片不卡视频在线| 久久亚洲国产视频三级黄| 香蕉久久夜色精品国产尤物| av免费视屏在线观看| 99福利一区二区视频| 国产中文字幕久久黄色片| 91偷拍视频久久精品| 国产欧美日韩精品一区二区| 国产一级内射麻豆91| 亚洲精品中文字幕无限乱码| 国产精品美女午夜视频| av免费视屏在线观看| 四季av一区二区播放| 日本淫片一区二区三区| 亚洲视频在线观看免费中文字幕| 高清一区二区三区四区五区| 久热这里只有精品九九| 国产午夜福利在线免费观看| 国产一级一片内射视频在线| 欧美日韩国产福利在线观看| 91麻豆精品欧美一区| 日韩人妻毛片中文字幕| 精品国产亚洲av久一区二区三区 | 好吊日在线视频免费观看| 暴力性生活在线免费视频| 国产水滴盗摄一区二区| 欧洲一区二区三区蜜桃| 国产成人精品久久二区二区| 久久亚洲午夜精品毛片| 国产在线成人免费高清观看av| 丁香六月婷婷基地伊人| 欧洲精品一区二区三区四区| 国产精品内射视频免费| 91日韩在线观看你懂的| 一区二区三区亚洲天堂|