2010-11-03 9 views
12

Descargué las fuentes de OpenSSL e hice la trilogía config, make, sudo make install.¿Cómo construyo OpenSSL como de 32 bits (i386) en Mac OS X?

entonces construyeron mi proyecto, que une en libcrypto.a y libssl.a, pero tiene:

ld: warning: in /usr/local/ssl/lib/libcrypto.a, file was built for unsupported file format which is not the architecture being linked (x86_64) 
ld: warning: in /usr/local/ssl/lib/libssl.a, file was built for unsupported file format which is not the architecture being linked (x86_64) 

Estoy bastante seguro de que quiera volver a construir OpenSSL como de 32 bits (i386), porque (por razones no pertinentes a esta pregunta) mi proyecto debe ser de 32 bits.

¿Cómo construyo OpenSSL como de 32 bits en Mac OS X? (. Yo no vi nada sobre esto en el archivo "Install")

+1

En general, en el sistema operativo X, Intel de 64 bits se llama 'x86_64', 32 bits Intel' i386' (consulte 'man arch'). –

+0

Nota, resulta que no necesité descargar y compilar OpenSSL en Mac OS X (10.6.4). Mi proyecto estuvo bien una vez que obtuve los argumentos del enlazador (-l) correctos. (Me dijeron que las bibliotecas de OpenSSL "empaquetadas" con Mac OS X son un binario grueso que incluye todas las compilaciones x86_64, i386 y PPC. –

+1

Correcto, prácticamente todo lo que se incluye con OS X es multi-arch universal. razón por la cual construir su propio OpenSSL es si necesita una versión más reciente. –

Respuesta

21
$ curl https://www.openssl.org/source/openssl-1.0.0a.tar.gz | tar xz 
$ cd openssl-1.0.0a 
$ export CFLAGS="-arch i386" 
$ export LDFLAGS="-arch i386" 
$ ./config 
$ make 
$ lipo -info libssl.a 
input file libssl.a is not a fat file 
Non-fat file: libssl.a is architecture: i386 
$ lipo -info libcrypto.a 
input file libcrypto.a is not a fat file 
Non-fat file: libcrypto.a is architecture: i386 
+1

¡Esa es una respuesta increíble! ¡Ordenado! – SexyBeast

+0

He descargado openssl-1.0.2g. Parece que la configuración predeterminada es i686 build, los CFLAGS y LDFLAGS no son necesarios. – zhangyoufu

1

Si alguien está buscando una solución para construir bibliotecas dinámicas, esto es cómo hacerlo:

tar -xvzf <openssl gz file> 
./Configure darwin-i386-cc -shared 
make 

Para 64 bits, ejecute

./Configure darwin64-x86_64-cc -shared 
make 
Cuestiones relacionadas