文章目錄
- 目的
- 編譯工具鏈
- 基礎開發與調試
- 基于CMake開發與調試
- 關于settings.json
- 總結
目的
在Windows上進行C/C++開發目前最最常用的IDE就是微軟的 Visual Studio ,只是對我來說早些年的VS實在是太卡了,留下了不好的印象。后來沒怎么用過,現在下了用起來也不怎么習慣,相對來說我還是喜歡更輕量的方式進行開發。這篇文章將記錄在VS Code中構建C/C++開發環境的一些內容。
VS Code中構建C/C++開發環境進行開發的方法官方是有文檔進行說明的,可以參考下面鏈接:
https://code.visualstudio.com/docs/languages/cpp
https://code.visualstudio.com/docs/cpp/introvideos-cpp
編譯工具鏈
Windows上進行C/C++開發需要有合適的編譯工具鏈,流行的有MSVC(微軟出品)和MinGW(GCC的一個實現)。
這里使用MSYS2(提供了命令行、包管理器等工具)來安裝MinGW-w64(64位版本)。首先去MSYS2官網下載軟件: https://www.msys2.org/ 。安裝完成后打開MSYS2-UCRT64的命令行界面,輸入下面命令下載MinGW-w64:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
下載完成后需要添加MinGW-w64到環境變量,如果未修改過目錄應該是 C:\msys64\ucrt64\bin
:
添加完成后應該就可以在命令窗口中使用了:
如果下載有問題也可以直接去MinGW-w64官網下載已經編譯好的工具鏈:https://www.mingw-w64.org/
如果對下載的版本選擇有問題可以參考文章:https://blog.csdn.net/weixin_43684214/article/details/136624735
基礎開發與調試
有了工具鏈后,在VS Code中開發C/C++需要安裝C/C++的擴展:
之后就可以進行基礎的開發了,下面代碼編譯(Run)就可以生成可執行文件:
上圖代碼為:
#include <iostream>int main()
{std::cout << "Hello Naisu!" << std::endl;
}
如果右上角沒有調試編譯的按鈕可以在VS Code的設置中調出來:
編譯沒問題就可以進行調試(Debug),記得先打上斷點:
最基礎的開發和調試就是上面這樣了,另外在VS Code中可以通過一些配置文件來對整個過程進行更加細致的配置:
tasks.json
編譯后會生成這個文件,該文件描述了編譯過程命令,可以修改該文件調整編譯行為,比如編譯前后動作、要編譯哪些文件、編譯生成什么文件等;launch.json
該文件可以通過右上角調試按鈕右邊的配置按鈕生成,該文件描述了調試時的行為,比如"stopAtEntry": true,
進入調試時就會停在入口處,"externalConsole": true,
調試的程序就會打開獨立的窗口;c_cpp_properties.json
該文件可以按Ctrl+Shift+P
然后選擇C/C++: Edit Configurations(UI或JSON)
生成。該文件影響代碼編寫時智能提示等功能,還有不在當前工作目錄下載需要引用的頭文件或庫的路徑等;
基于CMake開發與調試
首先需要去CMake官網下載并安裝:https://cmake.org/
安裝完成后可以在命令窗口使用cmake:
VS Code中需要安裝相應的拓展:
使用CMake的話只要項目目錄下有 CMakeLists.txt
文件,這個可以自己新建也可以按VS Code的文檔來,按 Ctrl+Shift+P
選擇 CMake: Quick Start
來進行配置(注意配置時項目名稱不能和cmake關鍵詞重復,比如test):
按照設置下來還會生成 CMakePresets.json
文件,該文件描述了項目使用的工具鏈等。如果沒有該文件也可以通過選擇 CMake: Select Configure Preset
來配置。
配置完成后就可以用CMake工具進行編譯和調試了:
除了側邊欄工具界面,底部的工具欄中也可以進行編譯調試等工作。
至此本文主要要描述的內容都已完成。
關于settings.json
前面的圖中可以看到 .vscode
目錄下有一個 settings.json
文件,該文件用來配置當前項目的VS Code軟件的一些特定配置,這個文件在實際項目中可以配置一些非常使用的功能,比如下面方式可以配置禁止搜索和禁止顯示某些文件:
{// Configure glob patterns for excluding files and folders in fulltext searches and quick open. // Inherits all glob patterns from the `files.exclude` setting."search.exclude": {"**/node_modules": true,"**/bower_components": true,"**/*.code-search": true},// Configure [glob patterns](https://aka.ms/vscode-glob-patterns) for excluding files and folders. // For example, the File Explorer decides which files and folders to show or hide based on this setting. "files.exclude": {"**/.git": true,"**/.svn": true,"**/.hg": true,"**/.DS_Store": true,"**/Thumbs.db": true},
}
settings.json
文件可以配置的項目比較多,更多內容可以參考下面鏈接:
https://code.visualstudio.com/docs/reference/default-settings
總結
使用VS Code構建C/C++開發環境目前來說也是比較方便的,很多輕量的使用是完全可以滿足的。