错误:对“ int64”的引用含糊不清QT中的编译问题opencv + dlib

时间:2018-11-15 11:13:48

标签: c++ qt opencv g++ dlib

我这里的情况很奇怪:

我是Mac Os X Qt中的工作代码库。我试图在ubuntu上用相同的库(opencv + dlib)编译相同的代码,它给出了很多错误?

让我整日疯狂:(有什么解决方法吗?

/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;

2 个答案:

答案 0 :(得分:1)

很可能您对int64的定义与此类型的另一个定义冲突。

有时在ubuntu中,即使C ++标准允许,编译器也不允许您两次键入相同的内容。

包括重新排序应该可以解决问题。

答案 1 :(得分:0)

我先删除了:

使用cpp文件中的命名空间dlib,该文件名已被标头,但错误并未消失。

但是为什么它可以在mac(clang)上运行而不能在ubuntu(g ++)上运行呢?整日开车带我疯狂寻找解决方案。