C++ Visual Studio 编译错误

7

我遇到了以下编译错误:

致命错误 C1189: #error : 错误:使用了C运行时库内部头文件。

我对此毫无头绪。有谁能为我解惑吗?

完整的错误信息如下:

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


如果您能包含产生错误的代码或文件名称,那就更好了。 - SoapBox
C:\Program Files\Microsoft Visual Studio 8\VC\ce\include\crtdefs.h(100) : 致命错误 C1189: #error : 错误:使用了 C 运行时库的内部头文件。 正在生成代码... - user59988
2个回答

14

你可能已经将加入了你的包含目录搜索路径中。那些头文件被用于构建C Runtime,它们不应该用于用户程序(即使它们的名称可能与应该包含的文件相同)。

如果你查看导致问题的头文件,你可能会看到类似下面这样的内容:

/* 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.
 */

你需要修复你的include搜索路径。

我看到你的include搜索路径中有ce/include - 你是在构建WinCE应用程序吗?如果是,你的构建应该定义_WIN32_WCE以避免这个问题。如果不是,那么这个目录不应该在include路径中。


这跟我的问题很接近。我不得不将解决方案中的类库的目标平台从PocketPC切换到Win32。不确定它如何开始... - Chuck Callebs

3
为了更加准确,我只需要更改其中一个.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
@Giox79 很不幸,我已经完全忘记了这是我的哪个项目,但是你可以在 VC++ 中更改项目的其他包含目录。 项目属性 > (Debug/Release/等) > C/C++ > 其他包含目录。链接此页面有进一步的详细信息,尽管 VC++ 现在更倾向于不使用第三个选项。 - Julien

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