小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

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

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

1、VSCode、CMake安裝

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

(一)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)建一個(gè)工作區(qū),操作如下:文件->打開文件夾...(選擇一個(gè)目標(biāo)文件夾)。

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

(一)CMakeLists.txt文件編寫

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

# 設(shè)置項(xiàng)目名稱project(CMakePro)
set(CMAKE_C_COMPILER "gcc")set(CMAKE_CXX_COMPILER "g++")
#指定CMake版本set(CMAKE_CXX_STANDARD 11)
# 將當(dāng)前文件中的所有文件放到變量DIR_TOOT_SRCS中# aux_source_directory 查找某路徑下的所有源文件,"."表示當(dāng)前路徑aux_source_directory(. DIR_TOOT_SRCS)# 將變量DIR_TOOT_SRCS中的源文件編譯源碼生成目標(biāo),目標(biāo)文件名稱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,選擇目標(biāo)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"  }

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

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

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

4、使用CMake編譯源文件

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

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

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

(一)終端中,手動(dòng)進(jìn)行源文件編譯

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

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

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

在源文件對(duì)應(yīng)的文件夾下會(huì)自動(dòng)生成一個(gè)build文件夾,如下所示:

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

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

提示:如上的操作可以通過(guò)批處理文件操作。
(二)使用CMake進(jìn)行源文件編譯
1、單擊"CMake"圖標(biāo),配置項(xiàng)目

2、進(jìn)行項(xiàng)目配置,如下所示

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

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

最后,進(jìn)行目標(biāo)文件,在終端(eg:PowerShell)運(yùn)行可執(zhí)行文件,本文示例如下:

5、Debug程序

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

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

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多