VSCode 配置 C++


每次換台電腦寫c++,就要找配置,很是繁瑣。這次自己寫篇博客,記錄下相關配置過程。

安裝編譯器

打開下面的網站 http://www.msys2.org ,下載 64 位的 MSYS2,按照主頁上的步驟安裝軟件。完裝完成后,輸入命令:

cd /etc/pacman.d

進入 /etc/pacman.d 目錄后,分別修改下面 3 個文件。

  1. mirrorlist.mingw32 文件內容為:
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/

  2. mirrorlist.mingw64 文件內容為:
    Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/

  3. mirrorlist.msys 文件內容為:
    Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/

然后輸入下面命令,更新系統。

cd ~
pacman -Syu

再次輸入命令,安裝 c++ 工具。

pacman -S mingw-w64-x86_64-toolchain

出現以下提示,分別選擇 3,9,13。文件有點大,耐心等待下載。

或安裝clang,此步驟配置較麻煩,慎用。

pacman -S mingw-w64-x86_64-clang
pacman -S mingw-w64-x86_64-lldb
pacman -S mingw-w64-x86_64-make

完成后,把 e:\Softwares\msys64\mingw64\bin\加入到系統環境中。注意:e:\Softwares目錄根據實際情況調正。

安裝VSCode

這次工具我們選擇 VsCode,方便實用,雖然c++的插件弱了點,但是微軟開發的,不會差到哪里去。安裝完成后選擇 c/c++ 插件。見下圖。

打開軟件,然后在File菜單中,點擊Add Folder to Workspace..., 選擇一個目錄作為以后寫c++代碼的文件夾,這里我們假設選擇的文件夾為 cpp。在 cpp 下新建目錄 .vscode, 然后在 .vscode 目錄下分別新建 task.jsonc_cpp_properties.json, launch.json 3 個文件。見下圖。

tasks.cpp 的內容如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Compile",
            "command": "g++",
            "args": [
                "-g",
                "${file}", //指定編譯源代碼文件                      
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe", // 指定輸出文件名,不加該參數則默認輸出a.exe  
                "-ggdb3", // 生成和調試有關的信息  
                "-Wall", // 開啟額外警告  
                "-static-libgcc", // 靜態鏈接  
                "-std=c++17", // 使用最新的c++17標准  
                "-Wno-format",
                "-fexec-charset=GBK", //Console窗體輸出字符編碼 保證能正常顯示中文  
                "-finput-charset=UTF-8" //輸入編譯器文本編碼 默認為UTF-8  
            ],
            "type": "shell",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher":"$gcc",
        }
    ]
}

c_cpp_properties.json 的內容:

{
    "configurations": [
        {
            "name": "Win32",
            "intelliSenseMode": "clang-x64",
            "compilerPath": "e:/Softwares/msys64/mingw64/bin/g++.exe", 
            "includePath": [
                "${workspaceFolder}"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=7",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "browse": {
                "path": [
                    "${workspaceFolder}"
                ]
            },
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": "",
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 3
}

launch.json 的內容:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)", // 配置名稱,將會在啟動配置的下拉菜單中顯示  
            "type": "cppdbg", // 配置類型,這里只能為cppdbg  
            "request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加)  
            "targetArchitecture": "x64", // 生成目標架構,一般為x86或x64  
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 將要進行調試的程序的路徑  
            "args": [], // 程序調試時傳遞給程序的命令行參數,一般設為空即可  
            "stopAtEntry": false, // 設為true時程序將暫停在程序入口處,一般設置為false  
            "cwd": "${workspaceRoot}", // 調試程序時的工作目錄,一般為${workspaceRoot}  
            "externalConsole": true, // 調試時是否顯示控制台窗口,一般設置為true顯示控制台  
            "internalConsoleOptions": "neverOpen", // 如果不設為neverOpen,調試時會跳到“調試控制台”選項卡",  
            "MIMode": "gdb", // 指定連接的調試器  
            "miDebuggerPath": "gdb.exe", // 調試器路徑  
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for GDB",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "Compile"
        }
    ]
}

運行代碼

完成上面的工作后,在 cpp 目錄下,寫個 test.cpp 文件,然后按 Ctrl+Shift+B,就會生成 test.exe 文件了。然后在終端執行 test.exe。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM