Linux下VSCode编译C++程序(单文件),linuxvscode
分享于 点击 16383 次 点评:178
Linux下VSCode编译C++程序(单文件),linuxvscode
首先看了很多网上关于使用VSCODE的说明感觉都不是特别清楚。
1.安装VSCODE的流程参考:
linux如何安装vscode
2.关于编译C++过程
1)安装c/c++编译插件
2)编写C++代码,helloword.cpp
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
cout<<"hello VS Code"<<endl;
return 0;
}
3)编写launch.json.(我的理解是调试时调用)
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/hello",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"preLaunchTask": "build",
"linux": {
"MIMode": "gdb"
},
"osx": {
"MIMode": "lldb"
},
"windows": {
"MIMode": "gdb"
}
}
]
}
注意:
"program": "${workspaceRoot}/hello",
这行是要调试的入口,但是呢,我们刚才的cpp是没有编译过的,需要一个task把我们的工程给编译。所以要预编译"preLaunchTask": "build",
这就是需要taks的功能。4)编写tasks.json
{
"version": "0.1.0",
"showOutput": "always",
"tasks": [
{
"taskName": "build",
"command": "g++",
"isShellCommand": true,
"showOutput": "always",
"args": ["-g","-o","hello","${workspaceRoot}/helloworld.cpp"]
}
]
}
其中
"taskName": "build",
就是前置task的名字。
那这里我们是一个cpp,那如果我们是一个很大的工程总不能一个个cpp编译吧。
在linux下提供了make功能。
所以这里的task我们采用了makefile来做这件事情。
5)编写makefile文件
CC = gcc
XX = g++
CFLAGS = -Wall -O -g
TARGET = ./hello
#compile all .c and .cpp to .o
%.o:%c
$(CC) $(CFLAGS) -c $< -o $@
%.o:%.cpp
$(XX) $(CFLAGS) -c $< -o $@
SOURCES = $(wildcard *.c *.cpp)
OBJS = $(patsubst %.c,%.o, $(patsubst %.cpp,%.o,$(SOURCES)))
$(TARGET):$(OBJS)
$(XX) $(OBJS) -o $(TARGET)
chmod a+x $(TARGET)
clean:
rm -rf *.o hello
这里通过g++生产最后的可执行文件hello。
回到上面的launch就是执行了这个hello文件。
6)直接按下F5调试即可
相关文章
- 暂无相关文章
用户点评