opencv编译过程中报错如下:
make[2]: *** No rule to make target '/usr/lib/aarch64-linux-gnu/libGL.so', needed by 'lib/libopencv_cudev.so.3.4.1'. Stop.
CMakeFiles/Makefile2:1786: recipe for target 'modules/cudev/CMakeFiles/opencv_cudev.dir/all' failed
make[1]: *** [modules/cudev/CMakeFiles/opencv_cudev.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
问题原因:找不到openGL库引用。
解决过程:
1、确定opengl已安装,找到对应文件则已安装
查找OpenGL是否安装:
locate libGL.so
或者
find / -name libGL.so
若没有,则在ubuntu下安装OPENGL
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
2、建立软连接
PC上(/usr/lib/libGL.so.1.2为查找到的libGL.so路径,实际中替换为自己查到的路径):
sudo ln -s -f -i /usr/lib/libGL.so.1.2 /usr/lib/x86_64-linux-gnu/libGL.so
TX2上:默认安装在/usr/lib/aarch64-linux-gnu。
实际操作中,发现libGL.so链接对象不存在:
用cat libGL.so查看,该文件为空。故依照上面方法重新安装openGL, 创建tegra/libFGL.so链接至libGL.so.1.0.0,问题解决。
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libGL.so.1.0.0 ./tegra/libGL.so