近期有一个用到了zlip的压缩和lua的dll需要编译到安卓平台下用,就使用SWIG做了转换,然后使用QT MinGW编译so文件.
swig转换很顺利.没有碰到什么问题,但是编译so确碰到了一些问题,网上查找相关资料也不是特别多,零零散散的,导致解决问题也不是很顺利,在此做下记录.
编译单纯得zlip的源码没啥问题,但是因为我里面用到了minizip来操作文件,它对于Linux的编译就没有做很好的适配,将其的代码加入QT工程里面编译,会报如下错误:
\ioapi.c:127: error: undefined reference to 'fopen64'
\ioapi.c:157: error: undefined reference to 'ftello64'
\ioapi.c:203: error: undefined reference to 'fseeko64'
都是来自ioapi.c的三个函数,这里找不到对应的函数,在Linux里面其对应的是没有64 的函数 也就是将其加宏控制
#ifdef _WINDLL
#define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
<