【问题标题】:VSCode No such file or directory when running c++ code [closed]VSCode运行c ++代码时没有这样的文件或目录[关闭]
【发布时间】:2019-05-27 04:17:51
【问题描述】:

当我尝试运行 时收到此错误:

main.cpp:1:18:致命错误:temp.h:没有这样的文件或目录 #包括“temp.h” 编译终止。

但是,Intellisense 检测到此标头存在。
Ctrl + 左键单击 main.cpp 中的#include "temp.h" 成功将我带到该文件,并且代码行下面没有波浪线。

我有两个单独的 .cpp 文件和头文件文件夹,并在 c_cpp_properties.json 中配置了 includePath:

我的工作区文件夹是临时文件夹,“${workspaceFolder}/**”行应该递归检查子文件夹的标题。我添加了头文件的绝对路径,但没有成功。

【问题讨论】:

  • 不要为代码发布图片。显然你的包含路径有问题。
  • 有没有temp.h和源文件main.cpp在同一目录下?
  • 感谢大家的回复。 @Someprogrammerdude 他们不在同一个目录中。出于组织的考虑,我希望将它们保存在单独的文件夹中,因为 VSCode 不会像 Visual Studio 那样自动将它们分成单独的类别。
  • @MatthieuBrucher 我同意问题出在我的包含路径上。我希望可以更改或修改有关 c_cpp_properties 的某些内容以适应具有单独的源和标题文件夹。也很抱歉在图片中发布代码,对此仍然很陌生。

标签: c++ file visual-studio-code include intellisense


【解决方案1】:

这个问题是 tasks.jsonc_cpp_properties.json 文件之间混淆的结果。我将 c_cpp_properties.json 视为用于编译。

c_cpp_properties.json 与 Intellisense 一起使用,绝不涉及编译。

tasks.json 用于编译。如果您像我一样不熟悉 tasks.json,您还需要在此处指定包含路径。

在您的 tasks.json 的 args 部分中,使用“-I”添加一个包含路径,然后是您希望包含的路径。

对于我的问题,该命令如下所示:

“-I”、“C:\Users\Dill\Desktop\temp\header”

【讨论】:

  • 注意:这不适用于** glob 递归匹配。您也可以使用-IC:\Your\Path-I 标志,路径后面没有空格)。你可以像-I${workspaceFolder}一样使用variable references
猜你喜欢
  • 2021-09-30
  • 2016-08-15
  • 2020-11-22
  • 2017-07-07
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多