Я использую 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'
Я вижу, проблема в том, что " s, включая 64-битные объектные файлы из / usr / lib64 вместо правильных 32-битных из / usr / lib (они там в порядке), но я не могу понять, как это исправить.