VSCode編寫C/C++項目
1. 下載插件C/C++、C++ Intellisense;
2. 新建一個空文件夾,從VSCode打開。 (或File-->Open Folder-->新建一個空文件jia);
3. 按F5(用命令行gcc、g++;或者編寫makefile文件,make;),選擇C++(GDB/LLDB),生成launch.json(用來調試);
5. 修改launch.json,將"program": "enter program name, for example ${workspaceFolder}/a.out"改為"program": "${workspaceFolder}/ProjectName";
"externalConsole": true,表示輸出會在彈出的命令行。修改為false的化,會在VSCode內部terminal輸出。
6. Ctrl+Shift+B, 選擇tasks.json-->模板--->other,生成tasks.json(創建任務);
7. 修改 tasks.json, "command": "echo Hello"改成"command": "g++ -o ProjectName ProjectName.cpp",這里的ProjectName和5中的ProjectName同名
8. 對於復雜的項目,"command": "echo Hello"改成"command": "make"
9. 再創建makefile文件,編輯;
10. 編寫Hello.cpp文件
11. 按Ctrl+Shift+P, 選擇 Task:Run Tasks,執行任務
12. 按F5,執行
源代碼如下所示:
Hello.cpp
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
launch.json
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/Hello", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
tasks.json
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "make" } ] }
makefile或Makefile
# objects= main.o kbd.o command.o display.o insert.osearch.o files.o utils.o # edit: $(objects) # cc-o edit $(objects) # main.o: main.c defs.h # cc-c main.c # kbd.o: kbd.c defs.h command.h # cc-c kbd.c # command.o: command.c defs.h command.h # cc-c command.c # display.o: display.c defs.h buffer.h # cc-c display.c # insert.o: insert.c defs.h buffer.h # cc-c insert.c # search.o: search.c defs.h buffer.h # cc-c search.c # files.o: files.c defs.h buffer.h command.h # cc-c files.c # utils.o: utils.c defs.h # cc-c utils.c # clean: # rmedit $(objects) edit: Hello.o cc-o edit $(objects) Hello.o: Hello.c cc-c Hello.c clean: rmedit Hello.o
