cv_bridge opencv版本冲突分析以及解决办法

cv_bridge会使用自定义版本的opecv,一般会出现与我们所使用的opencv版本不一致,就会出现冲突问题。

/opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake 会对自己所使用的opencv版本进行设置:
cv_bridge opencv版本冲突分析以及解决办法
cv_bridge opencv版本冲突分析以及解决办法

 

如果我们自己的模块中依赖了cv_bridge,就会将cv_bridge配置的opencv版本加入到我们的编译环境中来。
如果我们在自己的CMakeLists.txt中设置了自定义的opencv版本和环境,将会产生冲突。
会按照cv_bridge所使用的opencv版本来进行链接,然而cv_bridge的opencv版本配置一般不全面,很多库文件没有添加,就会出现命名设置了opencv环境,但还是找不到库文件的情况。
cv_bridge opencv版本冲突分析以及解决办法

cv_bridge opencv版本冲突分析以及解决办法

cv_bridge opencv版本冲突分析以及解决办法

 

解决办法有两个:
1.是将cv_bridge使用opencv版本切换为自己工程所使用的版本。
2.是将自己工程所使用的opencv版本切换为cv_bridge使用的版本。

如何切换呢?
修改如下两个地方
cv_bridge opencv版本冲突分析以及解决办法
cv_bridge opencv版本冲突分析以及解决办法

cv_bridge opencv版本冲突分析以及解决办法

cv_bridge opencv版本冲突分析以及解决办法