admin管理员组文章数量:1794759
vs code 配置C/C++多文件编译调试(linux&windows)
前言
众所周知,vs code是21世纪最好用的编辑器,没有之一(我说的)。我们可以用它来玩我们的小霸王游戏,甚至于,你还可以用它来写代码!
那么本篇文章就来说说如何用VS Code来配置C/C++多文件调试,这里虽然用的windows下作为例子,但也可以作为在linux环境下的参考。
准备工作那么我们怎么来配置多文件编译调试呢?接下来进入正题,假设我们已经安装好了C/C++的编译环境,并且也在vscode上安装好了对应的插件(C/C++插件),这时候我们打开VScode,打开一个工程文件夹(或者新建)。然后创建多个文件,如下图:
简单介绍一下三个文件的相关内容:
hello.h: 函数声明(本示例中仅写了一个函数来做示范printHello())
hello.c: 上述.h文件所述函数声明的具体实现
main.c: 程序入口,即包含一个main函数,在main中调用hello.c的函数。
这个简单的工程大概就是如此,下面分别是三个文件的源代码:
// hello.c #include "hello.h" void printHello() { int i = 10; printf("Hello VS Code!\\n"); } // hello.h #ifndef __HELLO_H__ //防止重复包含 #define __HELLO_H__ #include <stdio.h> void printHello(); #endif // main.c #include "hello.h" int main(int argc, char const *argv[]) { printHello(); return 0; }那接下来如何配置多文件编译调试呢?
主要步骤要进行编译和调试,就得用到launch.json和task.json,幸运的是,我们可以通过一下操作来自动生成两个文件:
1.点击菜单栏的运行按钮,点击启动调试,如图:
2.环境我们选择gdb就行,如图:
3.然后选择对应的gcc.exe文件,这时候,不出意外,会报错,提示未定义的引用之类的,如图:
4.不用管它,点击显示错误,这时候就会发现,工程目录下面会自动创建一个.vscode文件夹,下面生成了两个我们需要的json文件,但其实我们只需要配置task.json就够了。
5.打开task.json,把hello.c的文件添加到编译选项中,task.json内容如下:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活动文件", "command": "D:\\\\mingw64\\\\bin\\\\gcc.exe", "args": [ "-g", "${file}", "${fileDirname}\\\\hello.c", //添加这一行就够了,即为了让编译器找到对应的.c文件,如果有其他.c文件,继续按照这种方式添加就可以了 "-o", "${fileDirname}\\\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "调试器生成的任务。" } ], "version": "2.0.0" }6.增加这一行内容之后,保存,然后点击一下工程根目录下的某个.c文件(目的是为了使调试的工作目录回到对应的工程目录下,如果调试目录在.vscode目录下进行调试,依然会提示找不到文件类似的错误!!),接着在某一行代码设置一个断点,如图:
7.再点击菜单栏的运行,启动调试,这时候就会正常启动调试啦!给大家看看效果图:
总结
本篇博文主要讲解了用vs code配置多文件编译调试的过程,虽然只配置了windows的,但是linux上的依然可以按照类似的步骤进行参考,就是需要注意下linux下的路径格式跟windows有对应的不一样,其实没啥区别啦~
如果此篇文章能帮到你,记得点个收藏点个赞哦!
如果遇到问题了,可以在评论区留言哦!
版权声明:本文标题:vs code 配置CC++多文件编译调试(linux&amp;windows) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686871156a112919.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论