C1083: 打不开包含文件:math.h:没有那个文件或目录。

14

我遇到了许多这些错误,现在陷入了死局。

在Google上找到了很多答案,但不幸的是都无法解决问题。

我正在使用Visual Studio 2012。

它说找不到的所有文件都在我的电脑上的这个文件夹中。

C:\Program Files\Microsoft Visual Studio 11.0\VC\include
即使我右键单击包含语句并单击“打开文档”,它也会将我带到文档,因此很明显它已经存在并且可以看到。
我还尝试将目录添加到选项中的“其他目录”字段中,但未解决问题。
如果我使用完整路径的包含语句,如下所示:
#include <C:\Program Files\Microsoft Visual Studio 11.0\VC\include\math.h>

那么它可以工作,但如果math.h文件中有任何包含语句,我还需要添加它们的路径等等。

有什么想法发生了什么以及我可以尝试什么其他方法吗?

编辑:我将尝试从头开始创建一个新项目,看看是否有所帮助。可能我触及了不应该触及的设置。


我正在使用Visual Studio 2012。C:\Program Files\Microsoft Visual Studio 11.0?!?! - πάντα ῥεῖ
2
@πάνταῥεῖ VS v11 is VS 2012. VS v12 实际上是 VS 2013。 - Simple
5个回答

10

右键单击您的项目,转到属性,然后转到VC++目录并打开包含目录的编辑器。应该有一个标记为“继承自父级或项目默认值”的复选框。您将看到Visual Studio包括一些预定义的目录。

如果该框已经被选中,但Visual Studio没有找到目录,则尝试手动添加这些目录:

$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSDK_IncludePath)

1
@Rio,如果您在该对话框上按下宏按钮,$(VCInstallDir) 宏会展开为什么内容? - Simple
它指向“C:\ Program Files \ Microsoft Visual Studio 11.0 \” - Mr Dog
@Rio指向"C:\Program Files\Microsoft Visual Studio 11.0\VC"。尝试自己添加$(VCInstallDir)vc\include$(VCInstallDir)vc\atlmfc\include作为解决方法。 - Simple
那真是难以想象的简单,但我可能自己永远也想不到。显然,我已经在我的x64配置中关闭了它,而不是我的Win32。谁会知道呢。谢谢。 - dagronlund
我发现VS 2015的系统头文件已经被移动了,根据这个链接: https://social.msdn.microsoft.com/Forums/vstudio/en-US/cfa48739-cd32-43d2-9d27-2b6653da6645/canf-find-standard-c-header-file-in-visual-studio-2015-community-version?forum=vclanguage。你必须指定`C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt`作为路径--至少我是在那里找到它们的。手动添加了这个路径后,我就能够继续处理新的错误了。相关链接:https://dev59.com/yVwZ5IYBdhLWcg3wLd2z - vapcguy
显示剩余4条评论

5
以下内容在多个方面都不正确:
#include <C:\Program Files\Microsoft Visual Studio 11.0\VC\include\math.h>

\... 开始了所谓的转义序列,因此您将特殊令牌 \P\M\V\i\m 放入字符串中,但与例如表示换行符的 \n 不同,这些不是有效的转义序列。可以通过始终使用正斜杠来修复此问题:

#include <C:/Program Files/Microsoft Visual Studio 11.0/VC/include/math.h>

然而,math.h是一个标准头文件。对于标准头文件,您不需要编写完整路径。对于非标准头文件,您可以将包含路径添加到项目设置中,也无需编写完整路径。
#include <math.h>

那么:你正在使用C ++,而不是C语言。 C ++头文件的相应版本通常删除了 .h 扩展名,并在前面添加了一个 c

#include <cmath>

我正在使用C++,尽管math.h是一个标准头文件,但仍然找不到它? - Mr Dog
1
@Rio:如果一个人很严谨,那么 cmath 是 C++ 的标准库,而 math.h 只是 C 的标准库。你试过了吗? - Sebastian Mach
我刚试了一下,它给了我相同的错误。C1083无法打开包括文件: 'cmath': 没有那个文件或目录。 - Mr Dog

2

我刚遇到了相同的问题,我的解决方案是将文件名用引号括起来而不是用尖括号。

因此,用"dog.h"代替< dog.h>可以解决"文件未找到"的问题。


0

这是一个在Visual Studio中的错误,微软已将其设置为“已关闭-不是错误”,请参见链接

https://developercommunity.visualstudio.com/content/problem/311530/win10-sdk-broken.html

我在电脑上搜索了math.h文件,发现它在“Program Files\Unity”文件夹下的一个子文件夹中,也就是说Visual Studio没有安装它。这个周末似乎我有反金手指,我碰到的每件事都变成了垃圾。


-1

在解决方案属性下重新定向项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接