一、VS code 下載和安裝
下載地址
VSCodeUserSetup-x64-1.29.0.exe
傻瓜安裝,這個就不用贅述了。
二、配置插件(必須聯(lián)網(wǎng))
箭頭處可以選擇或者搜索需要的插件(C++、Python等)
對應(yīng)的擴(kuò)展插件安裝地址:C:\Users\你自己\.vscode\extensions
VS Code不會寫入任何配置到注冊表中。所以這些文件夾可以單個拷貝轉(zhuǎn)移,其他物理機(jī)都可以使用。
三、VS Code測試
創(chuàng)建一個文件夾:20181113_test 地址為 E:\VSCode\20181113_test
點(diǎn)擊或者File中的 Open Folder選擇剛才建立的文件夾,并打開。
此時(shí) 20181113_test 文件夾中什么都沒有。要新建一個文件,VS Code以文件夾為單位管理工程,工程的所有配置文件都寫入到該文件夾下。隨便在新文件main.cpp中寫點(diǎn)內(nèi)容。
可以點(diǎn)擊新建按鈕創(chuàng)建文件或者自己在資源管理器中創(chuàng)建文件main.cpp即可!輸入內(nèi)容
cout << "This is my first VS code demo!";
發(fā)現(xiàn)#include <iostream>提示找不到路徑(波浪線提示和配置彈窗),因?yàn)闆]有配置庫目錄。
此時(shí)按下Ctrl+. ,,出現(xiàn)Add Include path to setting按鈕,點(diǎn)擊后編輯器自動新建配置文件;
或者鼠標(biāo)放在頭文件上,會有一個黃色小燈泡,然后點(diǎn)擊燈泡,進(jìn)入“edit includePath setting”即可進(jìn)入“c_cpp_properties.json”配置文件。
只需要修改一個地方,Win32配置中的IncludePath,改為當(dāng)前庫目錄路徑。保存配置文件。#include不再提示錯誤。
把 "${workspaceFolder}/**" 替換為你的庫目錄路徑 "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include"即可!(需要注意轉(zhuǎn)義字符的問題)
使用VScode+clang+MinGW模式的配置方法(我的選擇)
下一個LLVM/clang:http://releases./download.html 直接選搭建好的clang for Windows作為前端,安裝clang時(shí)將LLVM文件夾安裝在根目錄下,勾選加環(huán)境變量的選項(xiàng)。
然后再下一個MinGW-w64:https:///projects/mingw-w64/files/latest/download 做為后端,安裝MinGW-w64時(shí)將Architecture改成x86_64,其余默認(rèn)就好。
然后將安裝好的MinGW-w64的文件貼到LLVM里面合并。(Windows下的clang沒有給libc++庫……)
然后把MinGW-w64卸載了。
安裝VScode下的插件:
- C/C++(就是有些教程里的cpptools)
- C/C++ Clang Command Adapter:提供靜態(tài)檢測(Lint)
- Code Runner
配置根目錄下.vscode文件夾中的 launch.json,tasks.json,settings.json,c_cpp_properties.json(這些文件可以自己新建出來的)
然后分別粘貼以下代碼
tasks.json
// https://code./docs/editor/tasks "label": "Compile", // 任務(wù)名稱,與launch.json的preLaunchTask相對應(yīng) "command": "clang++", // 要使用的編譯器 "-o", // 指定輸出文件名,不加該參數(shù)則默認(rèn)輸出a.exe,Linux下默認(rèn)a.out "${fileDirname}/${fileBasenameNoExtension}.exe", "-g", // 生成和調(diào)試有關(guān)的信息 "-static-libgcc", // 靜態(tài)鏈接 "-fcolor-diagnostics", // 彩色的錯誤信息?但貌似clang默認(rèn)開啟而gcc不接受此參數(shù) "--target=x86_64-w64-mingw", // clang的默認(rèn)target為msvc,不加這一條就會找不到頭文件;Linux下去掉這一條 "-std=c++17" // C語言最新標(biāo)準(zhǔn)為c11,或根據(jù)自己的需要進(jìn)行修改 "type": "shell", // 可以為shell或process,前者相當(dāng)于先打開shell再輸入命令,后者是直接運(yùn)行命令 "isDefault": true // 設(shè)為false可做到一個tasks.json配置多個編譯指令,需要自己修改本文件,我這里不多提 "reveal": "always", // 在“終端”中顯示編譯信息的策略,可以為always,silent,never。具體參見VSC的文檔 "focus": false, // 設(shè)為true后可以使執(zhí)行task時(shí)焦點(diǎn)聚集在終端,但對編譯c和c++來說,設(shè)為true沒有意義 "panel": "shared" // 不同的文件的編譯信息共享一個終端面板 // "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注釋符,并在上一條之后加個逗號。照著我的教程做的不需要改(也可以把這行刪去)
launch.json
// https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md "name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示 "type": "cppdbg", // 配置類型,這里只能為cppdbg "request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加) "program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 將要進(jìn)行調(diào)試的程序的路徑 "args": [], // 程序調(diào)試時(shí)傳遞給程序的命令行參數(shù),一般設(shè)為空即可 "stopAtEntry": false, // 設(shè)為true時(shí)程序?qū)和T诔绦蛉肟谔?,我一般設(shè)置為true "cwd": "${workspaceFolder}", // 調(diào)試程序時(shí)的工作目錄 "environment": [], // (環(huán)境變量?) "externalConsole": true, // 調(diào)試時(shí)是否顯示控制臺窗口,一般設(shè)置為true顯示控制臺 "internalConsoleOptions": "neverOpen", // 如果不設(shè)為neverOpen,調(diào)試時(shí)會跳到“調(diào)試控制臺”選項(xiàng)卡,你應(yīng)該不需要對gdb手動輸命令吧? "MIMode": "gdb", // 指定連接的調(diào)試器,可以為gdb或lldb。但目前l(fā)ldb在windows下沒有預(yù)編譯好的版本。 "miDebuggerPath": "gdb.exe", // 調(diào)試器路徑,Windows下后綴不能省略,Linux下則去掉 "setupCommands": [ // 用處未知,模板如此 "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "preLaunchTask": "Compile" // 調(diào)試會話開始前執(zhí)行的任務(wù),一般為編譯程序。與tasks.json的label相對應(yīng)
settings.json
"git.ignoreMissingGitWarning": true, "python.pythonPath": "D:\\Anaconda2", "workbench.colorTheme": "Visual Studio Dark", "workbench.iconTheme": "vs-minimal", "files.defaultLanguage": "cpp", // ctrl+N新建文件后默認(rèn)的語言 "editor.formatOnType": true, // 輸入時(shí)就進(jìn)行格式化,默認(rèn)觸發(fā)字符較少,分號可以觸發(fā) "editor.snippetSuggestions": "top", // snippets代碼優(yōu)先顯示補(bǔ)全 "code-runner.runInTerminal": true, // 設(shè)置成false會在“輸出”中輸出,無法輸入 "code-runner.executorMap": { "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", "cpp": "cd $dir && clang++ $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c++17 && $dir$fileNameWithoutExt" }, // 設(shè)置code runner的命令行 "code-runner.saveFileBeforeRun": true, // run code前保存 "code-runner.preserveFocus": true, // 若為false,run code后光標(biāo)會聚焦到終端上。如果需要頻繁輸入數(shù)據(jù)可設(shè)為false "code-runner.clearPreviousOutput": false, // 每次run code前清空屬于code runner的終端消息 "C_Cpp.clang_format_sortIncludes": true, // 格式化時(shí)調(diào)整include的順序(按字母排序) "C_Cpp.intelliSenseEngine": "Default", // 可以為Default或Tag Parser,后者較老,功能較簡單。具體差別參考cpptools擴(kuò)展文檔 "C_Cpp.errorSquiggles": "Disabled", // 因?yàn)橛衏lang的lint,所以關(guān)掉 "C_Cpp.autocomplete": "Disabled", // 因?yàn)橛衏lang的補(bǔ)全,所以關(guān)掉 "clang.cflags": [ // 控制c語言靜態(tài)檢測的參數(shù) "--target=x86_64-w64-mingw", "clang.cxxflags": [ // 控制c++靜態(tài)檢測時(shí)的參數(shù) "--target=x86_64-w64-mingw", "clang.completion.enable":true // 效果效果比cpptools要好
c_cpp_properties.json
"intelliSenseMode": "clang-x64", "compilerPath": "C:\\LLVM\\bin\\gcc.exe", "limitSymbolsToIncludedHeaders": true,
具體可以參考:Visual Studio Code如何編寫運(yùn)行C、C++?
頭文件的問題解決了!
按ctrl+shift+B單純編譯,按F5為運(yùn)行并調(diào)試(運(yùn)行前會自動編譯);
生成的exe就能看到了。
|