致命错误 C1189:#error:core.hpp 标头必须编译为 C++
Posted
技术标签:
【中文标题】致命错误 C1189:#error:core.hpp 标头必须编译为 C++【英文标题】:fatal error C1189: #error : core.hpp header must be compiled as C++ 【发布时间】:2016-05-26 09:50:27 【问题描述】:我正在构建一个使用 OpenCV 的 C 应用程序。
编译时出现如下错误:
fatal error C1189: #error : core.hpp header must be compiled as C++
我没有找到解决此错误的方法。
如何在 C 项目中使用 OpenCV?
【问题讨论】:
编译器告诉你不能用c编译器编译c++源代码.. ... 但是 OpenCV 具有纯 C 绑定。所以你需要调整你的构建过程来使用那些。 如何使用visual studio将其更改为c++编译器,我试过了,但我不能。 你必须在 C 中构建你的 OpenCV 源代码,你正在使用的东西是用 C++ 编译的,你正在使用 C 我不是 VS 专家,但this is the first googled link 【参考方案1】:-
选择所需文件。
启动其属性窗口
转到 C/C++ -> 高级,并将 编译为 更改为 编译为 C++ 代码 (/TP)
【讨论】:
谢谢,+1。非常有用。【参考方案2】:我不确定这会有多大帮助,但最近我在尝试编译“darknet”开源工具时遇到了类似的问题。源代码包含来自 OpenCV 的头文件,但需要使用 C 编译器而不是 C++ 编译。
代码使用以下标题,我刚刚更改了标题名称: 而不是:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
使用以下内容:
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/imgproc/imgproc_c.h"
【讨论】:
是的,我做到了。但我只使用 CPU 版本(未启用 GPU)。 从C++文件中调用Darknet的代码成功了吗? 不,我还没有尝试在另一个程序中使用它,我只是编译它并在终端中通过命令行运行。但我不认为如果它在命令行中工作,那么它不会在 C++ 代码中工作。如果你愿意,你可以把你的代码发给我,我可以在我的机器上试一试,如果同样的问题会出现,我会告诉你。以上是关于致命错误 C1189:#error:core.hpp 标头必须编译为 C++的主要内容,如果未能解决你的问题,请参考以下文章
错误:xkeycheck.h(179):警告 C4005:'char16_t':宏重新定义” |致命错误 C1189
error C1189: #error : "No Target Architecture"