Mam program, który obecnie musi być skompilowany w trybie 32-bitowym (na razie) i musi być połączony z wersją openSSL z dołączonymi szyframi eksperymentalnymi. Dlatego muszę skompilować 32-bitowy pakiet openSSL. Korzystanie zpowoduje, że zarówno flagi -m32, jak i -m64 są dołączane do flag kompilatora.Jak mogę skompilować openSSL w trybie 32-bitowym w systemie 64-bitowym?
Odpowiedz
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
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
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
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!
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.
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" ;;
- 1. Jak skompilować OpenSSL stosunkowo rPath
- 2. Jak skompilować projekt C w trybie C99?
- 3. Jak mogę skompilować bibliotekę nDPI w systemie Windows?
- 4. Jak skompilować bibliotekę statyczną w systemie Linux?
- 5. Jak skompilować kod objc w systemie Linux?
- 6. Jak mogę skompilować LaTeXa w UTF8?
- 7. Jak skompilować PHP 5.5.19 z OpenSSL 1.0.1 na OS X
- 8. Jak mogę skompilować program Go?
- 9. Jak mogę skompilować ulu UDF
- 10. Jak zarejestrować się w trybie uśpienia w systemie Android?
- 11. Jak skompilować i uruchomić program C/C++ w systemie Android
- 12. CUpewnij + Cuda: skompilować pliki cpp w trybie CUDA (--x = Cu)
- 13. Jak ustawić aktywność w trybie pełnoekranowym w systemie Android?
- 14. Jak mogę skonfigurować domyślny silnik zaplecza openssl?
- 15. Nie mogę skompilować plcrashreporter w Xcode 4
- 16. Jak uaktualnić OpenSSL w MAMP
- 17. Jak mogę skompilować Ruby do JavaScript?
- 18. Jak mogę skompilować automatycznie wygenerowane pliki C w wersji wstępnej?
- 19. Jak mogę skompilować rozwiązanie C# z Roslyn?
- 20. Włączanie OpenSSL w XAMPP
- 21. Zmiana koloru przewinięcia przewijania w trybie przewijania w systemie Android
- 22. Jak skompilować TypeScript w przeglądarce?
- 23. Czy mogę wyświetlić GUID w trybie windbg?
- 24. Obsługa multiemisji w systemie Android w trybie Hotspot/Tethering
- 25. ProGuard strzału skompilować z Joda czasu używany w systemie Windows
- 26. W aplikacji Rails 4, jak mogę skompilować ikony przycisków jQuery Mobile?
- 27. Jak mogę wyłączyć okno dialogowe asercji debugowania w systemie Windows?
- 28. Lokalne powiadomienie push w systemie iOS W trybie wyciszenia/wyciszenia
- 29. Korzystanie z CameraCaptureUI w systemie Windows 10 w trybie pełnoekranowym
- 30. EasyPhp: Jak włączyć Openssl