fatal error C1189: #error : core.hpp header must be compiled as C++
时间: 2023-12-31 19:06:39 浏览: 38
这个错误是由于在 C++ 代码中包含了 C 语言的头文件所引起的。在 C++ 中,头文件需要使用 C++ 的编译器来进行编译,如果使用了 C 的编译器来编译 C++ 的头文件,就会出现这个错误。
解决这个问题的方法是,在包含 C 语言头文件之前,加上以下代码:
```
#ifdef __cplusplus
extern "C" {
#endif
```
在包含完 C 语言头文件之后,再加上以下代码:
```
#ifdef __cplusplus
}
#endif
```
这样就可以保证 C++ 编译器可以正确地编译 C++ 头文件了。
相关问题
在visual studio 中出现 fatal error C1189: #error: "No Target Architecture"
在 Visual Studio 中出现 "fatal error C1189: #error: "No Target Architecture"" 的错误通常意味着没有为项目指定目标架构。
解决此问题的步骤如下:
1. 打开 Visual Studio,并打开你的项目。
2. 在 "解决方案资源管理器" 中,右键单击你的项目,然后选择 "属性"。
3. 在属性页中,选择 "配置属性" > "常规"。
4. 在 "目标架构" 下拉菜单中,确保选择了适合你的目标架构。常见的选项包括 x86(32位应用程序)、x64(64位应用程序)和 Any CPU(根据运行环境自动选择)。
5. 确认更改后,点击 "应用" 或 "确定",然后重新编译你的项目。
如果问题仍然存在,可以尝试以下几个步骤:
1. 确保你的 Visual Studio 版本是最新的,或者至少是与你的目标架构兼容的版本。
2. 检查你的项目文件(例如 .vcxproj 文件)是否正确设置了目标架构。可以使用文本编辑器打开该文件,并查找是否存在正确的目标架构设置。
3. 确保你的操作系统支持所选的目标架构。例如,如果你选择了 x64 架构,则需要运行在 64 位操作系统上。
如果上述解决方案都没有解决问题,建议提供更多关于你的项目、编译环境和具体错误信息的细节,以便我能够更好地帮助你解决问题。
d:\vc6.0\microsoft visual studio\vc98\include\eh.h(32) : fatal error C1189: #error : "eh.h is only for C++!"
这个错误是因为你在使用 C 语言编译器编译 C++ 代码时,头文件 eh.h 发生了错误。eh.h 是 C++ 中的异常处理机制相关头文件,不适用于 C 语言。解决方法是,使用 C++ 编译器来编译代码,如 Microsoft Visual C++。如果你已经在使用 C++ 编译器,那可能是代码中有混用 C 语言和 C++ 语言的情况,需要检查代码并进行修改。