Linking CXX executable ../../bin/generateTrajectory
/usr/local/lib/libg2o_types_slam3d.so: undefined reference to `g2o::opengl::drawPoint(float)'
collect2: ld 返回 1
make[2]: *** [../bin/generateTrajectory] 错误 1
make[1]: *** [src/CMakeFiles/generateTrajectory.dir/all] 错误 2
如果出现 E: 未发现软件包 libglut-dev,将上述$sudo apt-get install libglut-dev命令改成$sudo apt-get install freeglut3-dev
/usr/local/lib/libg2o_types_slam3d.so: undefined reference to `g2o::opengl::drawPoint(float)'
collect2: ld 返回 1
make[2]: *** [../bin/generateTrajectory] 错误 1
make[1]: *** [src/CMakeFiles/generateTrajectory.dir/all] 错误 2
make: *** [all] 错误 2
解决方法:
问题是g2o里调用的opengl的一个函数找不到定义,说明opengl没有正确安装,
重新安装一遍opengl,方法如下:
$ sudo apt-get install build-essential
$sudo apt-get install libgl1-mesa-dev
$sudo apt-get install libglu1-mesa-dev
如果出现 E: 未发现软件包 libglut-dev,将上述$sudo apt-get install libglut-dev命令改成$sudo apt-get install freeglut3-dev
最后这句很重要:
如果Ubuntu的版本在11.10或者更高的话还需要安装下面的包以解决连接问题 // For newer versions of Ubuntu(>=11.10) you have to install another package because the linker does not link anymore.
sudo apt-get install binutils-gold