Как создать 32-битную разделяемую библиотеку на 64-битной платформе с помощью autotools

Я использую 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 (они там в порядке), но я не могу понять, как это исправить.

17
задан Kevdog777 13 January 2014 в 11:06
поделиться