我有个mtcnn-ncnn工程,以前编译都正常,后面加入了数据库sqlite管理,再去掉了sqlite配置,然后编译就报错了
//usr/lib/libgdal.so.20:对‘sqlite3_column_origin_name’未定义的引用
//usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
collect2: error: ld returned 1 exit status
百度和谷歌了很久,方法都没用,也卸载重新安装过sqlite3,libgdal,opencv等,都不行。
最后原因是我安装sqlite3是下载的源码编译安装了,安装脚本有自动修改系统配置
sqlite-autoconf-3300100.tar.gz
所以我进到源码目录
sqlite-autoconf-3300100$ sudo make uninstall
( cd '/usr/local/bin' && rm -f sqlite3 )
( cd '/usr/local/include' && rm -f sqlite3.h sqlite3ext.h )
/bin/bash ./libtool --mode=uninstall rm -f '/usr/local/lib/libsqlite3.la'
libtool: uninstall: rm -f /usr/local/lib/libsqlite3.la /usr/local/lib/libsqlite3.so.0.8.6 /usr/local/lib/libsqlite3.so.0 /usr/local/lib/libsqlite3.so /usr/local/lib/libsqlite3.a
( cd '/usr/local/share/man/man1' && rm -f sqlite3.1 )
( cd '/usr/local/lib/pkgconfig' && rm -f sqlite3.pc )
卸载完再去mtcnn源码执行make,就能正常编译过了。神坑。