我是新手,我正在研究Raspberry Pi.我对GLIB 2.33.10交叉编译有一个问题.
我已经从网站和所有依赖项下载了源代码(zlib,ffi);已经为ARM构建了依赖项(在Raspberry上测试).我目前正在使用arm-bcm2708hardfp- linux-gnueabi工具链.
我已经从网站和所有依赖项下载了源代码(zlib,ffi);已经为ARM构建了依赖项(在Raspberry上测试).我目前正在使用arm-bcm2708hardfp- linux-gnueabi工具链.
我的configure命令行如下:
$ZLIB_CFLAGS=-I/home/myuser/cross_lib/include/libzlib \ ZLIB_LIBS="-L/home/myuser/cross_lib/lib/libzlib/raspberry -lz" \ LDFLAGS="-L/home/myuser/cross_lib/libffi/lib -lffi -L/home/myuser/cross_lib/lib/libzlib/raspberry -lz" LIBFFI_CFLAGS=-I/home/myuser/cross_lib/libffi/lib/libffi-3.0.11/include \ LIBFFI_LIBS="-L/home/myuser/cross_lib/libffi/lib -lffi" \ ./configure --host=arm-bcm2708hardfp-linux-gnueabi glib_cv_stack_grows=yes \ glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=no \ ac_cv_func_posix_getgrgid_r=no --with-libiconv=no --without-pcre \ --enable-gtk-doc-html=no --enable-xattr=no --prefix=/home/cross_lib/glib23
你可以看到我已禁用iconv和pcre(它只是一个测试版本);配置脚本是好的(似乎没问题……).在开始构建过程时,它会持续一段时间(编译大量代码),然后陷入链接阶段:
/opt/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/../lib/gcc/arm-bcm2708hardfp-linux gnueabi/4.7.1/../../../../arm-bcm2708hardfp-linux-gnueabi/bin/ld: warning: libgthread-2.0.so.0,needed by ../gobject/.libs/libgobject-2.0.so,not found (try using -rpath or -rpath-link) /opt/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/../lib/gcc/arm-bcm2708hardfp-linux-gnueabi/4.7.1/../../../../arm-bcm2708hardfp-linux-gnueabi/bin/ld: warning: libgmodule-2.0.so.0,needed by ./.libs/libgio-2.0.so,not found (try using -rpath or -rpath-link) ./.libs/libgio-2.0.so: undefined reference to `g_module_close' ./.libs/libgio-2.0.so: undefined reference to `g_module_symbol' ./.libs/libgio-2.0.so: undefined reference to `g_module_supported' ./.libs/libgio-2.0.so: undefined reference to `g_module_open' ./.libs/libgio-2.0.so: undefined reference to `g_module_error' collect2: error: ld returned 1 exit status make[4]: *** [glib-compile-resources] Errore 1 make[4]: uscita dalla directory "/home/myuser/cross_lib/source/glib-2.33.10/gio" make[3]: *** [all-recursive] Errore 1 make[3]: uscita dalla directory "/home/myuser/cross_lib/source/glib-2.33.10/gio" make[2]: *** [all] Errore 2 make[2]: uscita dalla directory "/home/myuser/cross_lib/source/glib-2.33.10/gio" make[1]: *** [all-recursive] Errore 1 make[1]: uscita dalla directory "/home/myuser/cross_lib/source/glib-2.33.10" make: *** [all] Errore 2
它看起来像一个奇怪的错误,我找不到自己的图书馆……但我不是专家……任何人都可以帮助我吗?感谢您的建议,请原谅我的英语不好
解决方法
最后在LDFLAGS中添加-lgmodule-2.0