我这里有一个奇怪的情况:
我是Mac Os X Qt中的一个工作代码库。我试图用相同的库(opencv+dlib(在ubuntu上编译相同的代码,它会产生大量错误吗?
让我一整天都疯了:(有什么解决方案吗?
/usr/local/include/opencv2/dnn/dnn.hpp:314:17: error: reference to ‘int64’ is ambiguous
virtual int64 getFLOPS(const std::vector<MatShape> &inputs,
^~~~~
In file included from /usr/local/include/opencv2/core/cvdef.h:91:0,
from /usr/local/include/opencv2/core.hpp:52,
from /usr/local/include/opencv2/highgui.hpp:46,
from ../SFT-V2/worker.h:18,
from ../SFT-V2/widget.h:5,
from ../SFT-V2/main.cpp:1:
/usr/local/include/opencv2/core/hal/interface.h:61:20: note: candidates are: typedef int64_t int64
typedef int64_t int64;
typedef int64_t int64;
您对int64
的定义很可能与此类型的另一个定义冲突。
有时在ubuntu中,即使C++标准允许,编译器也不允许对相同的东西进行两次typedef。
重新订购包含应该可以解决问题。
我首先删除了:
使用cpp文件中的名称空间dlib(该文件已在其标头中(,错误就消失了。
但是为什么它在mac(clang(上工作而不在ubuntu(g++(上工作呢?整天开车送我去找解决方案。