c - Visual Studio Code C/C++ 包含路径不适用于自定义头文件
问题描述
我正在使用 VSC 和 MinGW GCC 编写 C 语言。我可以包含这样的默认标题:
#include <stdio.h>
#include <Windows.h>
但是,当我在子目录“Source”中创建自己的头文件时,假设它的名称是“Test.h”,如果我尝试包含它,则 VSC 中没有错误,只有当我尝试使用 GCC 编译时(通过输入 gcc Main.c -o Test.exe) 我得到这样的错误:
Main.c5:10: fatal error: test.h: No such file or directory.
#include "test.h"
这是我的 c_cpp_properties.json 文件:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/Source"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.19041.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30037/bin/Hostx64/x64/cl.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}
不仅如此,
每当我编译并发生此错误时,如果我打开“test.h”,我会在 VSC 中收到此错误:
如果我遵循此错误,它会打开我的 C/C++ 配置,并告诉我编辑我的 includePath 设置。
我已经尝试了很多东西,没有一个奏效。有什么帮助吗?
解决方案
您的包含路径是(您的头文件所在的位置):"${workspaceFolder}/Source"
如果您从工作区文件夹中运行编译器,则必须将-I
选项添加到命令行:
gcc -ISource Main.c -o Test.exe
更多信息:GCC - 搜索路径
推荐阅读
- angular - mat-form-field 必须包含一个 MatFormFieldControl。在 getMatFormFieldMissingControlError
- java - JavaFX - 将来自两个来源的数据库信息添加到 TableView (MVC) 中的更好方法
- html - 如何使元素表现得像表格对齐
- reactjs - ReatcJS:在 IE11 中使用 VX 库?
- google-tag-manager - 如何防止所有标签在某些页面上触发?
- reporting-services - SSRS 仅在参数的特定值中使用文本字段
- angular - Angular 6 - 两个路由器插座
- node.js - if/else 块中的车把相等性检查
- python - Tensorflow Serving:get_model_status 缺少“utils”
- javascript - JS中的函数原型?