【发布时间】:2020-03-06 06:07:34
【问题描述】:
我已经从这里下载了 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 指向libtool 在运行./configure 脚本后创建的脚本。我已经提到 CC= '/local/common/pkgs/gcc/v6.3.0p2/bin/gcc -m32' 来配置脚本,但这个特定的文件 glib_probes.o 仍然是使用 64 位架构创建的。不知道创建 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
【问题讨论】:
标签: installation glib libtool systemtap