安装SOFT-SLAM报错解决

问题1 libpcl_io.so: undefined reference to `xnStopFrameSyncWith’

usr/bin/ld: warning: libOpenNI.so.0, needed by /home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so, not found (try using -rpath or -rpath-link)
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnStopFrameSyncWith'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnIsViewPointAs'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnGetIntProperty'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnGetIRMetaData'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnGetNodeInfo'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnNodeInfoGetCreationInfo'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnNodeInfoGetDescription'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnIsViewPointSupported'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnOSMallocAligned'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnIsGenerating'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnSeekPlayerToFrame'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnContextRegisterForShutdown'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnNodeInfoGetNeededNodes'
/home/sam/code/pcl_overlay/devel_isolated/pcl/lib/libpcl_io.so: undefined reference to `xnStartGenerating'

解决方法:
安装pcl和OpenNI. 1 and 2

问题2 libopencv_highgui.so: undefined reference to `QGraphicsView::staticMetaObject@Qt_5’

/usr/local/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_stdio_dest@LIBJPEG_9.0'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QGraphicsView::staticMetaObject@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QSize::scaled(QSize const&, Qt::AspectRatioMode) const@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QWidget::update()@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QWidget::paintEngine() const@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QAbstractSlider::setMinimum(int)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QCheckBox::minimumSizeHint() const@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QFileInfo::QFileInfo(QString const&)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QWidget::hideEvent(QHideEvent*)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QObject::connectNotify(QMetaMethod const&)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `non-virtual thunk to QBoxLayout::hasHeightForWidth() const@Qt_5'
/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'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QObject::customEvent(QEvent*)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QObject::QObject(QObject*)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QFont::setLetterSpacing(QFont::SpacingType, double)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QGraphicsView::dragLeaveEvent(QDragLeaveEvent*)@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `typeinfo for QHBoxLayout@Qt_5'
/usr/local/lib/libopencv_highgui.so: undefined reference to `QGLWidget::~QGLWidget()@Qt_5'

解决方法:
重装opencv。该错误是因为没有安装QT5就安装opencv的时候没有正确设置参数导致的。
必须先卸载opencv再重装,否则没有用。

安装opencv

cd opencv-3.2.0
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules \
    -D WITH_TBB=ON \
    -D WITH_V4L=ON \
    -D WITH_QT=ON \    # 1
    -D WITH_GTK=ON \
    -D WITH_OPENGL=ON \
    -D BUILD_EXAMPLES=ON .. # cmake命令的使用方式:cmake [<some optional parameters>] <path to the OpenCV source directory>。如果命令报错的话可以试着把-D后面的空格去掉在执行一次。
$ make -j4
$ sudo make install

PS:1. 如果qt未安装可以删去此行;若因为未正确安装qt导致的Qt5Gui报错,可将build内文件全部删除后重新cmake,具体可以参考这里
CMAKE_INSTALL_PREFIX:安装的python目录前缀,其实就是指定了python模块的安装路径:CMAKE_INSTALL_PREFIX/lib/python2.7/dist-packages。获取该路径的方式可以用python -c “import sys; print sys.prefix”
PYTHON_EXCUTABLE:指定python路径
OPENCV_EXTRA_MODULES_PATH: 指定opencv所需模块的路径,就是之前我们所说的contrib
其他cmake的具体变量说明可以看这里。

卸载opencv

1. $ cd opencv-3.2.0
2. $ sudo rm -r build
3. $ sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值