VScode如何编译多个.C文件

VSCode作为一个文本编辑器,不自动处理头文件引用的.c文件链接。为了解决编译时的未定义引用错误,需要在tasks.json中指定需要链接的文件。用户需在"args"属性中添加相应.c文件路径,或者使用MakeFile来组织编译过程。
摘要由CSDN通过智能技术生成

下面整理自:https://www.cnblogs.com/penen/p/13403571.html

VScode不能像MOOC上面讲的Devc++那样子。
“从编译器的角度看,一个.C文件是一个编译单元,而编译器同一时间只会处理一个编译单元,即只会对一个编译单元去做编译。编译完了之后形成的是.O文件,即目标代码文件,然后由链接器Link来把他们链接在一起。
在有些IDE中分开两个按钮编译和构建,compile只是产生.O文件,
而build才是把这些.O文件连接起来形成一个可执行的程序
而DEVC++没有分开,只有一个。
那VScode怎么办?这是由于VSCODE实际上是一个文本编辑器,不是一个IDE,它不会自动链接项目通过头文件引用的.c文件。要解决这个问题,就要告诉编译器需要链接哪些文件。


下面整理自:https://www.cnblogs.com/shadowfish/p/12059872.html

在使用VSCODE进行C语言程序设计时,如果用到了头文件声明函数,.c文件定义函数,在编译时尽管已经引用了相应的头文件,VSCODE文本编辑器也没有报错,但仍然无法编译。
错误提示如下:

d:/ComputerHomework/2019_winter/main.c:10: undefined reference to `ReadPathTkFile'

这是由于VSCODE实际上是一个文本编辑器,不是一个IDE,它不会自动链接项目通过头文件引用的.c文件。要解决这个问题,就要告诉编译器需要链接哪些文件。

解决方法
在当前路径下的.vscode文件夹中找到tasks.json,找到"args"属性,在其中"-g"后,"-o"前加入"${fileDirname}\YourcFileName.c",每组字符串以逗号分隔。YourcFileName.c即项目中要参与编译的文件名。
样例如下(仅参考填写格式,具体参数不相同正常)

{
    "tasks": [
        {
            "type": "shell",
            "label": "gcc.exe build active file",
            "command": "C:\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "${fileDirname}\\IstkFile.c",
                "${fileDirname}\\PrintQuestion.c",
                "${fileDirname}\\MarkingSystemLib.c",
                "${fileDirname}\\zqyLib.c",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
                
            ],
            "options": {
                "cwd": "C:\\mingw64\\bin"
            }
        }
    ],
    "version": "2.0.0"
}

如果觉得一个个添加文件比较麻烦,可以使用MakeFile的方法。这里不做详细介绍。
下面的链接是C++MakeFile模板:
C++MakeFile模板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值