2011-08-31 28 views
7

Descargar los archivos fuente desde official OpenSSL site. Sigo el archivo INSTALL.M32 en la carpeta OpenSSL. Abro msys.bat, vaya a la carpeta de OpenSSL, a continuación, escribaError al compilar OpenSSL con MinGW/MSYS

$ ./config 

dice "Configurado para MinGW", de lo que escribo

$ make 

y después de unos minutos de recepción de error:

md2test.c:1:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token 

Respuesta

3

En mi caso, el problema era que pocos archivos de prueba (3 por lo que recuerdo) tenían en lugar de C++ - codifican el nombre del archivo (algo así como dummitest.c). Copio y pegué el código correcto a esos archivos desde archivos de otra carpeta, pero con el mismo nombre, y todo salió bien.

+2

Esto suena exactamente igual que un problema con los enlaces simbólicos. Los otros archivos afectados son 'rc5test.c' y' jpaketest.c'. –

0

Estoy teniendo el mismo problema. A medida que el problema es la construcción, mientras que las pruebas, simplemente no les hago:

make Makefile openssl.pc libssl.pc libcrypto.pc build_libs build_apps build_tools 

es una solución horrible, pero parece que funciona. Obtiene las bibliotecas y las herramientas, pero no el conjunto de pruebas.

Espero que alguien dé una mejor respuesta y/o solucione el problema con el código si hay alguno.

16

simplemente abrieron los archivos que estaban causando el error (/test/"md5test.c; rc5test.c; jpaketest.c ") y se sustituye la línea de

dummytest.c 

a

#include "dummytest.c" 

Es la misma solución que se indicó anteriormente, excepto que es un poco más rápido ...

+1

typo: /test/"md2test.c con un 2 en vez de un 5 +1 – Gonzo

2

¿Qué programa usaste para descomprimir 'openssl-1.0.0x.tar.gz'? 7-zip es un gran programa, pero parece que hay un error.

Usa alquitrán u otro descompresor como BreadZip.

tar zvxf openssl-1.0.0x.tar.gz

Es la misma solución que se ha señalado anteriormente, excepto que es un poco más rápido ... :)

14

El problema es que md2test.c es en realidad un enlace simbólico o enlace simbólico a dummytest.c.

Si extrajo openssl-1.0.1c.tar.gz con otra cosa que

tar xf openssl-1.0.1c.tar.gz 

entonces estos enlaces simbólicos no se mantenían. En Cygwin funciona después de eso; no estoy seguro acerca de MinGW.

+1

lo que ayudó fue tar -xvzf openssl-1.0.1c.tar.gz solo para volver a empaquetarlo, pero esta vez con la opción de eliminación de referencias "-h" tar -cvhzf openssl.tar.gz openssl-1.0.1 y luego extraerlo una vez más. Estúpido pero funciona. No se sabe cómo desreferenciar los archivos mientras se extrae – tmanthey

1

El problema es un enlace simbólico en el archivo que MinGW/MSYS parece no entender.

Puede solucionarlo utilizando la opción --derefence (-h) al extraer.

Por ejemplo tar -xzvfh archive.tar.gz

de http://www.gnu.org/software/tar/manual/html_node/dereference.html:

When reading from an archive, the --dereference' ( -h') option causes tar to follow an already-existing symbolic link when tar writes or reads a file named in the archive.

Cuestiones relacionadas