Я использую autotools для создания моей системы, которая состоит прежде всего из библиотеки. На 64-битных платформах Red Hat мне нужно создать библиотеку, способную работать на 32-разрядных платформах Red Hat.
Когда я добавляю -m32
в строки компиляции, все работает отлично, чтобы создать статическую (.a
) библиотеку, но как только я попытаюсь создать общую библиотеку, я получаю такую ошибку:
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crti.o' is incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginS.o' is incompatible with i386 output
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/crtbeginS.o: In function `__do_global_dtors_aux':
crtstuff.c:(.text+0x29): undefined reference to `__DTOR_END__'
collect2: ld returned 1 exit status'
Я вижу, что проблема заключается в том, что он включает 64-битные файлы объектов из /usr/lib 64 вместо правильных 32-разрядных из /usr/lib (они там в порядке), но я не могу выяснить, как это исправить.