glib是干啥的我没有研究,反正编译器他东西需要这个
当前的最新版本2.65.5 好像都不是用的make来编译的了
上一个大版本2.5 对比2.4加了很多其他依赖,
我这里用的2.4版本
参考 https://blog.csdn.net/ty3219/article/details/46942493
版本呢我也用的2.45.3
编译器6.3的
依赖库 libffi zlib 略 很简单的 标准流程就可以解决
error: format not a string literal, format string not checked后
打开对应文件 把g_date_strftime函数如下操作
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
g_date_strftime ()
#pragma GCC diagnostic pop
确实路径已经指定了依旧报错,只能复制到编译器目录下才没问题
不过我只有两个问题 一个是 libffi* 我的libz没有报错 。另一个是 libgmodule-2.0.so 这个明明是glib自己生成的页抱错,一起复制到编译器目录
libffi* libgmodule-2.0.so* ~/tools/arm-linux/arm-linux-gnueabihf/libc/lib
glib-genmarshal问题大概是因为编译过程需要用到这个东西,脚本中PATH临时指定一下就可以了
脚本中export不会影响你当前环境变量的
#!/bin/bash
set -e
#编译PC版本
if [ ! -d "install/pc" ];then
echo ac_cv_type_long_long=yes>glib.cache
echo glib_cv_stack_grows=no >>glib.cache
echo glib_cv_uscore=no>>glib.cache
echo ac_cv_func_posix_getpwuid_r=yes>>glib.cache
echo ac_cv_func_posix_getgrgid_r=yes>>glib.cache
./autogen.sh
./configure --prefix=${PWD}/install/pc --cache-file=glib.cache
make clean
make
make install
make clean
fi
#编译arm版本
echo ac_cv_type_long_long=yes>glib.cache
echo glib_cv_stack_grows=no >>glib.cache
echo glib_cv_uscore=no>>glib.cache
echo ac_cv_func_posix_getpwuid_r=yes>>glib.cache
echo ac_cv_func_posix_getgrgid_r=yes>>glib.cache
export PATH=$PATH:${PWD}/install/pc/bin
ROOT=/home/tanic/install
F_PATH=/home/tanic/cups-filter/install
export CFLAGS="-fPIC -I${ROOT}/include -I${F_PATH}/include "
export CPPFLAGS="-fPIC -I${ROOT}/include -I${F_PATH}/include "
export LDFLAGS="-L${ROOT}/lib -L${F_PATH}/lib "
export PKG_CONFIG_PATH=${F_PATH}/lib/pkgconfig
export LIBS="-lffi "
export CC="arm-linux-gnueabihf-gcc"
./configure --host=arm-linux --cache-file=glib.cache --disable-selinux --disable-xattr --disable-libelf --prefix=${PWD}/_install
#make clean
make
make install