使用VS code编写c/c++(多文件)

操作系统:win10
编译器: mingw32
必须插件:code runner
目标:实现多文件的编译运行与调试

本文使用c++作为例子
首先新建一个文件夹,以英文命名,在文件夹中创建Debug和Release两个子文件夹
再创建main.cpp

//main.cpp
#include <iostream>

void func();

int main(int argc, char*argv[])
{
	func();
	std::cin.get();
	return 0;
}

再新建func.cpp

#include <iostream>

void func()
{
	std::cout << "Hello World!";
}

新建debug.txt,用来存放debug的设置

main:main.o func.o
	g++ -o ./Debug/main main.o func.o
func.o:func.cpp
	g++ -g -Wall -c func.cpp
main.o:main.cpp
	g++ -g -Wall -c main.cpp

注意g++命令前面为tab键,不是空格
注意第二行就是要把目标输出到debug文件夹
使用-g参数才能进行gdb调试

新建release.txt,存放release的配置

main:main.o func.o
	g++ -o ./Release/main main.o func.o
func.o:func.cpp
	g++ -O2 -Wall -c func.cpp
main.o:main.cpp
	g++ -O2 -Wall -c main.cpp
.PHONY:clean
clean:
	-del *.o

注意第二行输出到release文件夹
使用-O2优化

打开settings.json,打开方式为点击左下角小齿轮,点击settings,弹出新窗口后在右上角找到一对花括号,点击即可打开

在里面找到"code-runner.executorMap": 部分,往里面添加
“cpp”: “make -f release.txt clean && make -f release.txt && ./Release/main.exe && make -f release.txt clean”

这里的意思是每次使用code runner运行的时候先删除所有.o文件然后重新编译运行,在程序结束后再清除一次.o文件,至于为什么这样做后面解释

-----------------------------------------------------------调试部分---------------------------------------------------------
点击界面左侧的debug选项,一开始应该是这样

点击小齿轮会弹出一个下拉列表,选择GDB那个,VS code就会自动生成一个叫.vscode的文件夹在你的项目下,并在里面生成一个launch.json

找到"program"那一行,把for example…删掉后写上要调试的exe路径

再找到"miDebuggerPath",这里填写gdb.exe的路径

再添加一行"preLaunchTask": “main”,

这里不一定是main,但要跟下面tasks的label一致

再在.vscode里面新建tasks.json

{
"version": "2.0.0",
"tasks":
	[
		{
			"label": "main",
			"type": "shell",
			"command": "make",
			"args": ["-f", "debug.txt"],         
		}
	]
}

这样就大功告成了,平时用code runner跑的代码就用release.txt的参数

点击debug的绿色箭头就用debug.txt的参数,但由于debug过后不知道如何删除.o文件,只能在运行release版本时前后各清理一次.o文件

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值