一、问题描述
之前自己自定义 /usr/local/lib 路径,将opencv-4.1.1安装在此路径下,导致 vscode cmake时出现如下报错:Cmake Erro: ${{prefix}}//usr/include/opencv
自己按照报错路径去查看,发现 usr/include/ 路径下找不到 opencv 或 opencv4 文件夹,如下图所示,却在usr/local/include/ 路径下发现 opencv4 文件夹。 故猜测原因是 ros cmake 默认opencv路径在 usr/include/opencv 下,因为自己自定义了路径,故ros cmake 编译报错。
二、 解决方案
在不卸载opencv-4.1.1情况下,更改ros 相关cmake文件,命令行如下:
cd /opt/ros/melodic/share/cv_bridge/cmake/
sudo gedit cv_bridgeConfig.cmake
修改文本中所有 usr/include/opencv (110行附近,共两处)为 /usr/local/include/opencv4 (opencv默认安装,应该也需要修改,修改为 usr/include/opencv4),如下图所示(红框为默认路径,蓝框为修改后路径),然后保存:
(PS:上述原因为自己的摸索猜测,以后有更深的认识再来更新)
———————————————————————————————————————————————————————————
更新:仅仅修改cv_bridge配置文件 include 还不够,这只是修改头文件目录指定到自己安装的Opencv目录下还需要修改为自己安装的Opencv库文件libraries路径 ,操作如下:
cd /opt/ros/melodic/share/cv_bridge/cmake/
sudo gedit cv_bridgeConfig.cmake