symbol lookup error: xxx undefined symbol xxx

我在编译一个小工程时,编译过程并没有报错,但是在运行报了如下错误:
undefined symbol N2cv3Mat20updateContinuityFlagEv。解决此类问题的思路可以从如下几个方面入手:

  1. 库没有正确连接,但如果是这个问题,我们在编译时往往就会报错。
  2. 库的版本不对,比如我们使用的第三方库其依赖的是OpenCV2,但是我们自己的工程使用的时OpenCV3,这时也会有这个问题。
  3. 最容易让人忽略的一个情况时,虽然库的版本都对应上了,但是路径对应不上。那我的例子来说,我的一个依赖外部库是libface_gpu.so,就是这个库保存,因此我ldd libface_gpu.so,发现使用的是/usr/local/lib/libopencv_***.so.3.4。我自己编译的小工程的可执行文件demo,当我ldd demo时发现../../lib/libopencv_***.so.3.4.我们发现两者路径不一致,因此我们现在要修改我们的makefile文件了,使两者保持一致即可。

你可能感兴趣的:(错题本,openCV)