我的电脑是mac os系统,所以库是.dylib结尾的,与so等同。
编译glib2.34.3的时候,遇到了两个主要问题,第一个是报缺少库libffi,这时候,下载libffi-3.0.13安装好了,仍然报告这个。按如下方法解决,按照你编译安装的路径修正一下:
export LIBFFI_LIBS=/usr/local/lib/
export LIBFFI_CFLAGS=/usr/local/lib/libffi-3.0.13/include
然后在./configure的时候,使用参数:
./configure --prefix=/data/glib-2.0 --with-libiconv=gnu CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
configure终于通过。
make的时候报错ffi的函数没找到声明,拷贝/usr/local/lib/libffi-3.0.13/include/ffi* /usr/include,编译继续。
make继续报错dyld: Symbol not found: _ffi_type_double
备份库mv /usr/local/lib/libffi.dylib /usr/local/lib/libffi.dylib.bak
拷贝库cp /usr/local/lib/libffi.dylib /usr/lib
make继续
报错dyld: Symbol not found: _ffi_type_double 等等。
查不到原因,毕竟libffi是最新版的了,而且有这个符号,推测可能是新版的glib跟系统某些库或编译器本身有版本不兼容问题。
下载glib-2.28,
先编译libiconv:libiconv-1.14.tar.gz
http://www.gnu.org/software/libiconv/ (这里找到最新版)
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
./configure && make && make install (默认安装到了/usr/local)
./configure --with-libiconv=gnu CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
make
make install
一切OK。