我正在开发 Ubuntu 16.04。成功安装 OpenCV 后,我正在尝试make
暗网。我已经成功安装了支持 CUDA 的暗网,但我现在正尝试使用 OpenCV 为其授权,并按照官方页面()中的OPENCV=1
说明在其 makefile 中进行设置。
这是我从中获得的输出的(摘录)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 来解决这个问题,正如这个答案所建议的那样,将以下行添加到我的.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 PATH
和成功更新echo LD_LIBRARY_PATH
。结果是一样的。
我添加到路径中的文件夹是否可能不正确?还有什么可能是这个问题的原因?