1. vscode配置c或者c++編譯開發環境,一般情況下足夠了,大概教程網上有很多,但是都只言片語,留一手.我在采坑無數次之后總結了一些經驗如下
vscode編譯有兩種形式,一種是右鍵,這種形式,使用默認setting,都不知道在哪里配置的,可控性賊差,並且有一點必須注意,vscode默認只會編譯一個文件,這一點賊坑(哪個寫c++的只寫一個main文件)
另一種編譯方式是類似於命令行形式,不同的是,得需要自己寫一些文件配置啥的,但是有一點好處是可控,如下
2. c與c++混編,可能會出現指針強制轉化,編譯通不過的問題, 網上有說我以上遇到的問題解決方案是加上 CXXFLAGS=-fpermissive
但是加在哪里也沒說,按照這個方向查找也沒具體些的信息,不過我猜測應該是cmake中的內容,
因此在遇到c和c++混編的情況下,我還是建議,盡可能的使用專業的ide,比如virsual studio 2019或者qt,或者clion(我個人推薦clion)
clion安裝 https://www.jianshu.com/p/1aa989808e15
3. 記錄下正常情況下vscode配置c++環境的幾個文件和步驟
1 在項目根目錄下創建.vscode文件,並創建兩個文件夾,一個用來debug,一個用來執行指令
launch.json
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 配置名稱,將會在啟動配置的下拉菜單中顯示 "type": "cppdbg", // 配置類型,這里只能為cppdbg "request": "launch", // 請求配置類型,可以為launch(啟動)或attach(附加) "program": "${fileDirname}/${fileBasenameNoExtension}.exe",// 將要進行調試的程序的路徑 "args": [], // 程序調試時傳遞給程序的命令行參數,一般設為空即可 "stopAtEntry": false, // 設為true時程序將暫停在程序入口處,一般設置為false "cwd": "${workspaceRoot}",// 調試程序時的工作目錄,一般為${workspaceRoot}即代碼所在目錄 "environment": [], "externalConsole": true,// 調試時是否顯示控制台窗口,一般設置為true顯示控制台 "MIMode": "gdb", "miDebuggerPath": "E:\\c-c++\\TDM-GCC-64\\bin\\gdb64.exe",// miDebugger的路徑,注意這里要與MinGw的路徑對應 "preLaunchTask": "g++", // 調試會話開始前執行的任務,一般為編譯程序,c++為g++, c為gcc "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
tasks.json
{ "version": "2.0.0", "tasks": [{ "label": "g++", "command": "g++", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe" ], "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } }, "group": { "kind": "build", "isDefault": true } } ] }
2 記得添加環境變量