Qt 尝试使用 OpenCV 支持制作 Darknet 的问题

Issues with Qt trying to make Darknet with OpenCV support

我正在开发 Ubuntu 16.04。我正在尝试 make darknet after having successfully installed OpenCV. I have already successfully installed darknet with CUDA support, but I am now trying to empower it with OpenCV, setting OPENCV=1 in its makefile as indicated in the official page ().

这是我从 make 获得的输出的(摘录):

[...]
/usr/local/lib/libopencv_highgui.so: undefined reference to `QWidget::isFullScreen() const@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QWidget::hasHeightForWidth() const@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QPen::QPen(QBrush const&, double, Qt::PenStyle, Qt::PenCapStyle, Qt::PenJoinStyle)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QStatusBar::showMessage(QString const&, int)@Qt_5'
[...]

如果我尝试构建一些测试项目来验证 OpenCV 的正确运行,我会得到类似的结果。所以我认为问题出在围绕 OpenCV 的一些联系上。

似乎make 没有在其路径中看到 Qt 库。我试图通过将 Qt5 的库文件夹添加到 PATH 和 LD_LIBRARY_PATH 来解决这个问题,正如 this 回答所建议的那样,将以下行添加到我的 .profile 文件中:

export  LD_LIBRARY_PATH=/usr/include/x86_64-linux-gnu/qt5:$LD_LIBRARY_PATH
export  PATH=/usr/include/x86_64-linux-gnu/qt5:$PATH

然后 运行 source .profile 并确保内容已成功更新 echo PATHecho LD_LIBRARY_PATH。结果是一样的。

会不会是我添加到路径中的文件夹不对?还有什么可能导致此问题?

问题与 OpenCV 的安装有关。我提取了最新版本的 opencvopencv-contrib 并从头开始重建它们,详细遵循 installation instructions。之后就可以成功make暗网了

我刚刚解决了这个问题。

试试这个:

  1. 编辑 ~/.bashrc 并添加 export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
  2. 保存文件
  3. source ~/.bashrc

我认为这是因为我的 qt 默认安装在文件夹 /usr/lib/x86_64-linux-gnu 中,但它没有链接...所以将它添加到路径对我有用。 GL