vscode 中 C 语言配置问题,includePath 没起作用。

文件目录结构

只为了测试将 .h 单独放在一个文件夹中。

image.png

stack.c

// ...
#include "stack.h"
//...

c_cpp_properties.json

${workspaceFolder}/include/** 试图将工作目录下的 include 文件夹包含进去,但未生效。

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "${workspaceFolder}/include/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

运行报错

mypc$ gcc stack.c -o stack
stack.c:5:10: fatal error: 'stack.h' file not found
#include "stack.h"
         ^~~~~~~~~
1 error generated.

请有经验的同学多多指教,谢谢!

阅读 16.2k
3 个回答
gcc stack.c -o stack

这和 vsc 没关系,那个路径是给 vsc 插件使用的,目的是找到“正确”的 .h 文件,做语法解析

然而你是的错误是 gcc 编译错误,该使用 gcc 的 -I 参数指定头文件搜索路径

gcc stack.c -o stack -I ./include

你应该给gcc传递包含路径,为.vscode/tasks.json添加以下参数:

{
    "tasks": [
        {
            "args": [
                //...
                "-I${fileDirname}/include",
            ],
            //...
         }
}

或者,把tasks里的command项改成"make",其他无关项删除,然后自己写makefile来生成。

新手上路,请多包涵

include “../include/stack.h”

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题