glib安装:在x86_64bit(64bit)机器上安装32bit Glib库

问题描述 投票:1回答:1

我已从此处下载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
installation glib libtool systemtap
1个回答
0
投票

glib使用的Meson构建脚本不会传递配置时指定的CC设置。 Systemtap的dtrace工具使用环境中的CC,因此您可以这样调用make:

CC="/local/common/pkgs/gcc/v6.3.0p2/bin/gcc -m32" make

或者,如果不需要,可以在配置时使用--disable-dtrace禁用那些探针。

© www.soinside.com 2019 - 2024. All rights reserved.