2011-08-31 14 views
7

Scaricare i file di origine da official OpenSSL site. Seguo il file INSTALL.M32 nella cartella OpenSSL. Apro msys.bat, passare alla cartella di OpenSSL, quindi digitareErrore durante la compilazione di OpenSSL con MinGW/MSYS

$ ./config 

si dice "configurato per MinGW", di tipo I

$ make 

e dopo pochi minuti viene visualizzato l'errore:

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

risposta

3

Nel mio caso il problema era che pochi file di test (3 per quanto ricordo) avevano invece di C++ - codifica il nome del file (qualcosa come dummitest.c). Copia e incolla il codice corretto in quel file da file di un'altra cartella, ma con lo stesso nome, e tutto è andato bene.

+2

questo suona esattamente come un problema con i collegamenti simbolici. Gli altri file interessati sono 'rc5test.c' e' jpaketest.c'. –

0

Ho lo stesso problema. Poiché il problema è, mentre la costruzione delle prove, ho appena non ho fatto loro:

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

è una soluzione orribile, ma sembra funzionare. Ottieni le librerie e gli strumenti, ma non la suite di test.

Spero che qualcuno dia una risposta migliore e/o risolva il problema con il codice se ce n'è.

16

Ho semplicemente aperto i file che sono stati la causa dell'errore (/test/"md5test.c; rc5test.c; jpaketest.c ") e sostituita la linea

dummytest.c 

a

#include "dummytest.c" 

È la stessa soluzione di cui sopra, eccetto che è un po 'più veloce ...

+1

typo: /test/"md2test.c con un 2 invece di un 5 +1 – Gonzo

2

Quale programma hai usato per decomprimere' openssl-1.0.0x.tar.gz '? 7-zip è un ottimo programma, ma sembra che ci sia un bug.

Utilizzare tar o altro decompressore come BreadZip.

tar zvxf openssl-1.0.0x.tar.gz

E 'la stessa soluzione, come detto sopra, tranne che è un po' più veloce ... :)

14

Il problema è che md2test.c è in realtà un link simbolica, o link simbolico-dummytest.c.

Se avete estratto openssl-1.0.1c.tar.gz con qualcosa di diverso

tar xf openssl-1.0.1c.tar.gz 

allora questi collegamenti simbolici non sono stati conservati. Su Cygwin funziona dopo; non sono sicuro di MinGW.

+1

ciò che è stato aiutato è tar -xvzf openssl-1.0.1c.tar.gz solo per riconfezionarlo ma questa volta con l'opzione dereferenza dereference "-h" tar -cvhzf openssl.tar.gz openssl-1.0.1 e poi estrarlo nuovamente Stupido ma funziona Non so come delegare i file durante l'estrazione – tmanthey

1

Il problema è un collegamento simbolico nell'archivio che MinGW/MSYS non sembra comprendere.

È possibile aggirare il problema utilizzando l'opzione --derefence (-h) durante l'estrazione.

Per esempio tar -xzvfh archive.tar.gz

da 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.

Problemi correlati