1. 发生以下类似错误:
.//libgetfea.so: undefined reference to `inflateReset'
.//libgetfea.so: undefined reference to `inflateEnd'.//libgetfea.so: undefined reference to `compress'
.//libgetfea.so: undefined reference to `deflate'
.//libgetfea.so: undefined reference to `deflateInit_'
.//libgetfea.so: undefined reference to `inflate'
.//libgetfea.so: undefined reference to `inflateSync'
.//libgetfea.so: undefined reference to `compress2'
.//libgetfea.so: undefined reference to `crc32'
.//libgetfea.so: undefined reference to `deflateEnd'
.//libgetfea.so: undefined reference to `deflateReset'
.//libgetfea.so: undefined reference to `BZ2_bzDecompress'
.//libsurf.so: undefined reference to `cvInitMatHeader'
.//libgetfea.so: undefined reference to `BZ2_bzDecompressEnd'
.//libgetfea.so: undefined reference to `inflateInit_'
.//libgetfea.so: undefined reference to `deflateInit2_'
.//libgetfea.so: undefined reference to `sgemv_'
.//libgetfea.so: undefined reference to `uncompress'
这里是说明zlib有问题, 可以首先使用ldconfig更新以下动态链接库(ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令. )
这里的问题是如Linking with libpng & zlib?文章中所说,要按-ljpeg -lz顺序链接库
2. 由于opensurf要用pencv的库,所以在GetFeature在调用libsurf.so时发生
undefined reference to `cvPutText'
等跟CV相关的类似错误, 这是因为可以在生成libsurf.so之时链接openCV的库, 也可以在调用libsurf.so之后再链接openCV库,这里通过在生成libsurf.so之时就链接openCV的库来解决。