C++ Visual Studio 编译错误

Posted

技术标签:

【中文标题】C++ Visual Studio 编译错误【英文标题】:C++ Visual Studio Compilation error 【发布时间】:2009-01-30 00:27:52 【问题描述】:

我得到以下编译错误

致命错误 C1189: #error : ERROR: Use of C runtime library internal header file.

我完全不知道。有人能解释一下吗?

完整的错误:

C:\Program Files\Microsoft Visual Studio 8\VC\ce\include\crtdefs.h(100):致命错误 C1189:#error:错误:使用 C 运行时库内部头文件。正在生成代码...

【问题讨论】:

希望您包含产生错误的代码或文件名。 C:\Program Files\Microsoft Visual Studio 8\VC\ce\include\crtdefs.h(100):致命错误 C1189:#error:错误:使用 C 运行时库内部头文件。生成代码... 【参考方案1】:

您的包含目录搜索路径中可能有crt/src。那里的头文件用于构建 C 运行时 - 它们不打算在用户程序中使用(即使它们可能与打算包含的文件具有相同的名称)。

如果您查看导致问题的标题,您可能会看到如下内容:

/* This version of the header files is NOT for user programs.
 * It is intended for use when building the C runtimes ONLY.
 * The version intended for public use will not have this message.
 */

您需要修复包含搜索路径。

我看到您的包含搜索路径中有ce/include - 您正在构建 WinCE 应用程序吗?如果是这样,您的构建应该定义_WIN32_WCE 以防止出现此问题。如果不是,则此目录不应在包含路径中。

【讨论】:

这与我的问题很接近。我不得不将我的解决方案中的类库的目标平台从 PocketPC 切换到 Win32。不知道它是如何开始的......【参考方案2】:

为了增加一点精度,在我的例子中,我只需要更改我使用的一个 .h 文件的包含路径,如下所示。

我从这个包含路径开始:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src

然后改成:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include

这是正确的头文件所在的位置。

【讨论】:

我知道这是一个老问题,但我想要一点支持。你在哪里修改了包含路径?我查看了 ../common/wince/qmake.conf 和当前的 qmake.conf,但找不到。任何帮助将不胜感激 @Giox79 不幸的是,我完全忘记了我的项目是什么,但是您可以在 VC++ 中更改项目的附加包含目录。项目属性 >(调试/发布/等)> C/C++ > 附加包含目录。 link This page has further details 虽然 VC++ 现在不喜欢使用第三个选项。

以上是关于C++ Visual Studio 编译错误的主要内容,如果未能解决你的问题,请参考以下文章

奇怪的 Visual Studio 2008 C++ 编译器错误

Visual Studio 2015 Update 1 中的 C++ 内部编译器错误

visual c++ 6.0编译时总有一个错误是怎么回事?

Visual Studio 2015 (C++):在第一次构建错误时停止编译(不是第一个项目)

Visual Studio 2010在编译c++时为啥有错误也没有下划波浪线?

C++ 与 gcc 和 Visual Studio 不同的编译错误,“在此上下文中”