我已从此处下载glib 2.56来源:
https://download.gnome.org/sources/glib/2.56/
然后我尝试使用以下命令在64位x86_64平台上构建和安装32位glib库:-
../configure CC='/local/common/pkgs/gcc/v6.3.0p2/bin/gcc -m32' CXX='/local/common/data/gcc/v6.3.0p2/bin/g++ -m32' CflaGS='-fPIC -O2' CXXflaGS='-fPIC -O2' LD_libraRY_PATH=/local/common/data/gcc/v6.3.0p2/lib LDflaGS=-m32 --enable-static=yes --prefix=/home/gout/source_glib/32bit_glib/glib-2.56.1/glib_32bit --enable-libmount=no PYTHON=/local/common/data/python/v2.7.6/bin/python --with-pcre=/home/gout/pcre_32bit/pcre-8.20/pcre_install
make
make install
同时构建代码(使用“ make”命令)。我遇到以下问题:-
/local/common/pkgsData/gcc-v6.3.0p2/Linux/RHEL6.0-2013-x86_64/bin/ld: i386:x86-64 architecture of input file `.libs/glib_probes.o' is incompatible with i386 output
我找到了文件“ glib_probes”。正在使用64位架构创建。
[gout@il-gout glib]$ file .libs/glib_probes.o
.libs/glib_probes.o: ELF 64-bit LSB relocatable,x86-64,version 1 (SYSV),not stripped
通过命令创建特定文件:-
/bin/sh ../libtool --mode=compile --silent --tag=CC dtrace -G -s ../../glib/glib_probes.d -o glib_probes.lo
我们从glib源代码运行上述命令的规则是:-
glib_probes.lo: glib_probes.d
$(AM_V_GEN) $(LIBTOOL) --mode=compile $(AM_V_lt) --tag=CC $(DTRACE) -G -s $< -o $@
变量LIBTOOL
指向运行./configure脚本后创建的libtool
脚本。我已经提到CC= '/local/common/pkgs/gcc/v6.3.0p2/bin/gcc -m32'
来配置脚本,仍然使用64位体系结构来创建这个特定文件glib_probes.o
。.不确定创建glib库有什么问题。
我验证了除上述文件以外,所有其他文件都是使用32位体系结构创建的。请帮助我解决此问题。此问题导致无法创建libglib-2.0.la
CCLD libglib-2.0.la
/local/common/data/gcc-v6.3.0p2/Linux/RHEL6.0-2013-x86_64/bin/ld: i386:x86-64 architecture of input file `.libs/glib_probes.o' is incompatible with i386 output