vscode有头文件不能编译怎么办, vscode无法编译解决办法

在使用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"
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VSCode编译头文件有几种方法。一种方法是在命令行中使用g++命令进行编译,可以使用以下命令:g++ main.cpp -I 库路径 -o main。这样可以告诉编译头文件的位置,方便进行调试。但是需要注意的是,这种方法只是告诉VSCode头文件的位置,实际编译时gcc并不知道头文件的位置。\[1\] 另一种方法是在源文件中使用#include指令引入头文件,并在编译时一起编译头文件。例如,在main_copy.cpp中使用#include "iee754_float.h"引入iee754_float.cpp中的函数,然后一起编译iee754_float.cpp和main_copy.cpp。这样可以确保头文件被正确编译并链接到主程序中。\[2\] 还有一种方法是在VSCode的设置文件setting.json中进行配置。可以在"code-runner.executorMap"中设置编译命令,例如:"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -I '头文件路径' && $dir$fileNameWithoutExt"。这样在使用Code Runner插件时,会自动执行设置的编译命令。\[3\] 综上所述,可以通过命令行编译、在源文件中引入头文件并一起编译、或在VSCode的设置文件中配置编译命令来编译头文件。具体使用哪种方法取决于个人的需求和习惯。 #### 引用[.reference_title] - *1* *3* [vscode 编译无法找到自定义头文件目录 fatal error: No such file or directory](https://blog.csdn.net/Gatongone/article/details/122334394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【vscode】用VScode编译cpp,包含了头文件,但是还undefined reference](https://blog.csdn.net/m0_57168310/article/details/127739374)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值