Я скачал источники glib 2.56 отсюда:
https://download.gnome.org/sources/glib/2.56/
А затем я пытаюсь собрать и установить 32-битную библиотеку glib на 64-битной платформе x86_64, используя следующие команды: -
../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