【问题标题】:VS Code editor does not recognise variable defined in other files in workspaceVS Code 编辑器无法识别工作区中其他文件中定义的变量
【发布时间】:2021-10-21 11:14:49
【问题描述】:

“main.cpp”可以编译并成功运行,但是 VS Code 编辑器显示很多烦人的曲线。

在工作区中,我包含文件:main.cpp、a.h、b.cpp。

在“main.cpp”中,我已经包含了所有库和

#include "a.h"
#include "b.cpp"

在“a.h”中,我定义了一个变量“xyz”。但是,当我编辑“b.cpp”时,VS Code 编辑器一直在变量“xyz”下显示曲线,并出现“使用未声明的标识符“xyz”的问题。

如何配置 VS Code 以避免在编辑器中出现恼人的曲线?


更新:

正如下面的答案所建议的,包括“b.cpp”不是组织多个文件 cpp 项目的好方法。

构建大型项目的分步教程:http://staffwww.fullcoll.edu/aclifton/cs123/lecture-projects-and-files.html

简而言之,“b.cpp”应该包括所有自己需要的库,而不是依赖于“main.cpp”中定义的库。然后创建一个“b.h”,包括在“b.cpp”中定义的函数名。最后,在“main.cpp”中包含“b.h”。

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。
  • 你不应该#include ".cpp" 文件。
  • 您需要编辑 tasks.json 文件以让 VSCode 使用您的所有源文件,而不是包含 .cpp 文件。文档在这里告诉你如何做到这一点:https://code.visualstudio.com/docs/cpp/config-mingw#_modifying-tasksjson
  • 如何配置 VS Code 以避免在编辑器中出现恼人的曲线和问题? 问题很可能是您的代码而不是编辑器.包含.cpp 文件不是一个好习惯。
  • @drescherjm 你是对的。在我原来的方式中,“b.cpp”包含在“main.cpp”中,因为它依赖于“main.cpp”中预包含的库。但是这样“b.cpp”不能单独编译和测试(尽管大多数时候我只编译“main.cpp”)。我找到了一种更好的方式来组织更大的项目。感谢您指出。

标签: c++ visual-studio-code vscode-settings


【解决方案1】:

我相信为了在 VSCode 中有多个文件,你必须编辑你的 tasks.json 来编译你的活动文件,以及所有其他文件。

我的 Tasks.json 的“-g”如下所示:

"-g" //remember not to have multiple -g's
"${fileDirname}/**.cpp",

/** 表示还编译该目录中任何其他目录中的所有其他 cpp,依此类推。 您不能在 C++ 中包含 .cpp 文件。您必须将其与其他 CPP 文件一起编译。

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2019-07-18
    • 1970-01-01
    • 2021-08-26
    • 2020-09-08
    • 1970-01-01
    相关资源
    最近更新 更多