2011-10-20 7 views

Odpowiedz

23

Odznaka bębnowa przypomniała mi, żebym wrócił i sam odpowiedziałem! Sposób mam to do pracy było użyć:

setarch i386 ./config -m32 
11

Niestety dla mnie, setarch nie była ważna komenda w moim systemie LFS, więc musiałem zrobić to w inny sposób:

./Configure shared threads zlib-dynamic --prefix=/usr --openssldir=/etc/ssl -m32 linux-generic32 

Uwaga: jest to minimalny przykład, aby pracować jak chce PO:

./Configure -m32 linux-generic32 
5

miałem podobny problem, z wyjątkiem starałem się skompilować na maszynie Solaris x86. setarch nie jest dostępny w Solarisie, więc nie mogłem użyć prostszego podejścia sugerowanego w jednej z innych odpowiedzi tutaj.

Skrypt "config" dla OpenSSL jest powłoką powłoki, która określa, co uważa się za system docelowy, a następnie wywołuje skrypt "Configure" perl, który wykonuje podnoszenie ciężkie. Skonfiguruj ma wiele wbudowanych celów: możesz użyć "Perl Configure TABLE", aby uzyskać listę wszystkich z nich. Jest to przypadek wyboru celu, którego potrzebujesz z dostępnej listy.

Tak więc, jeśli chcesz wymusić na nim budowę celu innego niż ten, który Twoim zdaniem powinieneś, możesz zadzwonić bezpośrednio do "Konfiguruj", podając nazwę celu, który chcesz. Na przykład, aby dostać mój Solaris 32 bit budować pracować, użyłem:

./Configure solaris-x86-cc --shared 

lub, w przypadku pierwotnego pytania, czy to system Linux można użyć:

./Configure linux-generic32 --shared 
2

Aby uzyskać 32-bitową kompilację działającą na Centos 5 x64, musiałem wykonać zarówno setarch i -m32, jak i zainstalować 32-bitowy pakiet devel dla glibc.

setarch i386 ./Configure --prefix=/usr linux-generic32 -m32 shared 
sudo yum install glibc-devel-2.5-118.el5_10.2.i386 
make 

jako test, aby upewnić się, komenda plik użycie zobaczyć, co wyniki są

file libcrypto.so.0.9.8 libssl.so.0.9.8 
libcrypto.so.0.9.8: ELF **32-bit** LSB shared object, Intel 80386, version 1 (SYSV), not stripped 
libssl.so.0.9.8: ELF **32-bit** LSB shared object, Intel 80386, version 1 (SYSV), not stripped 

Bingo!

0

Uruchom ./Configure linux-generic32, a następnie make CC="gcc -m32" działa dla mnie podczas kompilowania Openssl-1.0.0.c na wersji 64-bitowej CentOS-5.5.

Informacje na temat budowy aplikacji 32b na komputerze 64-bitowym można znaleźć pod numerem this, która zawiera szczegółowe instrukcje dotyczące instalowania niezbędnych 32-bitowych plików nagłówkowych i bibliotek na różnych platformach.

0

Może będzie mógł zmodyfikować plik "config" w openssl, ponieważ najpierw sprawdzi 64-bitowy lub 32-bitowy system operacyjny, a także przygotuje konfigurację dla systemu operacyjnego, na przykład system operacyjny ma 64-bitową wersję i możemy zmodyfikować termin w konfiguracji poniżej: repeat x86_64- -linux?) OUT = "linux-x86_64" ;; z x86_64- -linux?) OUT = "linux-generic32" ;;

Powiązane problemy