【发布时间】:2015-01-31 22:02:17
【问题描述】:
使用 Visual Studio Express2013 for Windows Desktop,带有“Win32 控制台应用程序”C++ 项目
(我正在为一门课程做一个项目。为了开始,我必须导入讲师提供的所有项目文件 - 有很多(所有 .cpp 和 .h 文件),所以我真的不能在这里复制粘贴它们中的任何一个……但无论如何我认为这不是问题)。
当我点击“运行调试器”时,我在 math.h 中发现了近 200 个语法错误即使 math.h 是 Visual Studio 附带的。
所有的错误看起来都很简单,比如:
"Missing ')' before identifier _X'"
"'_X' : undefined identifier"
"'floor' : definition of dllimport data not allowed"
"syntax error : missing ';' before '+'"
etc... these syntax errors go on into the 200s.
(我会复制粘贴整个错误日志,但是有262个错误,并且它们都有文件目录路径,所以你们无法阅读)
如果 math.h 是来自 Visual Studio 本身的文件,为什么我在 math.h 中有这么多语法错误?
(我已经尝试解决这个问题好几个星期了,直到它编译完成后我才能真正开始处理该项目)
【问题讨论】:
-
math.h是 C 头文件,请改用cmath。 -
检查您的包含,在其他内容之前包含
math.h(将其移至包含列表的顶部)。 -
一个简单的程序怎么样?
#include <math.h> int main() { double d = sqrt(4.0); }这是做什么的?如果它可以编译,那么所有这些头文件都会导致问题——它与 Visual Studio 无关。 -
将其更改为 cmath.h 并将其移至顶部 - 只有 16 个错误而不是 262 个,但仍然有错误 - 我会看看并回复你们。
-
<math.h>是 C 标头。在 C++ 代码中使用它是完全合法的,但首选 C++ 特定版本<cmath>(不同之处在于<cmath>将声明放入std命名空间)。将其更改为<cmath.h>可能会减少错误的数量——第一个可能是<cmath.h>不存在;它是<cmath>,不是`。您的问题需要包含您正在编译的源文件,最好是重现问题的简化版本。而且您不必向我们展示数百行错误消息,但前几行会有所帮助。
标签: c++ visual-studio-2013 compilation syntax-error math.h