VScode 报错 “undefined reference”

文章讲述了在处理C语言项目时遇到的编译问题,由于hello.c和hello.h文件中的函数在main.c中被引用但未正确编译导致“undefinedreference”错误。通过修改task.json文件,将编译命令扩展为包含所有.c文件解决了问题。然而,这个问题对于C/C++CompileRun插件无效,该插件仍只编译当前文件,因此建议使用系统自带的C/C++文件运行功能来避免此类问题。
摘要由CSDN通过智能技术生成

这里我用一个三个文件hello.c,hello.h,main.c(在同一个文件夹),直接编译运行main.c报错显示未定义sum函数

 这里需要修改task.json文件,将args参数中的${file}修改为${fileDirname}\\*.c

 
在配置完task.json文件后,还是显示“undefined reference”,排除后发现这个是插件C/C++ Compile Run的问题,应该是修改task.json文件args参数对这个插件无效吧。
所以这里我们使用自带的运行C/C++文件(不要用插件的编译运行)

 结果是没有问题了

所以说,这里修改的task.json仅对自带的运行C/C++文件生效,每次运行都会编译链接当前文件夹下的所有.c文件(本例中相当于输入命令 gcc -g main.c hello.c -o main.exe),而插件C/C++ Compile Run仍是每次编译运行当前的.c文件(即gcc -g main.c  -o main.exe),所以才会出现引用未定义的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值