colmap ninja 时遇到undefined reference to `TIFFFieldTag@LIBTIFF_4.0‘错误
文章目录
- 1.报错
- 2.解决方法
- 2.1将libtiff链接到新的路径行不通
- 2.2将python版本更换到python 3.8.10还是不行。
- 2.3最后最简单方法直接卸载libtiff,解决问题
1.报错
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfreeimage.so: undefined reference to TIFFFieldTag@LIBTIFF_4.0' /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfreeimage.so: undefined reference to TIFFFieldName@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfreeimage.so: undefined reference to TIFFFieldReadCount@LIBTIFF_4.0' /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfreeimage.so: undefined reference to TIFFFieldPassCount@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfreeimage.so: undefined reference to TIFFFieldDataType@LIBTIFF_4.0' /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfreeimage.so: undefined reference to _TIFFDataSize@LIBTIFF_4.0'
/usr/bin/ld: /usr/lib/libceres.so.1.14.0: undefined reference to `google::kLogSiteUninitialized'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
2.解决方法
试过很多方法
2.1将libtiff链接到新的路径行不通
sudo ln -s /lib/x86_64-linux-gnu/libffi.so.7.1.0 /opt/ros/noetic/lib/libffi.so.7
2.2将python版本更换到python 3.8.10还是不行。
原来是Python 3.8.16版本在安装过程中,就会默认安装libffi-3.4.2,在该库中,就会出现旧版本兼容老版本问题,即出现libffi.so.7链接至libffi.so.8.1.0,进而产生报错。而在python3.8.10中,默认安装libffi-3.3版本,在该版本内,libffi.so.7链接至libffi.so.7.1.0,就不会产生上述问题。因此,另一种解决方式即为安装python 3.8.10,同样能解决该问题。
2.3最后最简单方法直接卸载libtiff,解决问题
conda uninstall libtiff