2011-08-31 78 views
7

official OpenSSL site下载源文件。我遵循OpenSSL文件夹中的INSTALL.M32文件。我打开msys.bat,去OpenSSL的文件夹,然后键入使用MinGW/MSYS编译OpenSSL出错

$ ./config 

它说: “配置为MinGW的”,比I型

$ make 

和几分钟后收到错误:

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

回答

3

在我的情况下,问题是几乎没有测试文件(我记得3),而不是C++ - 代码文件的名称(类似dummitest.c)。我将正确的代码从其他文件夹中的文件复制粘贴到该文件,但具有相同的名称,并且一切正常。

+2

这听起来完全像符号链接的问题。其他受影响的文件是'rc5test.c'和'jpaketest.c'。 –

0

我有同样的问题。 由于问题而建设的试验,我只是没有让他们:

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

是一个可怕的解决方案,但它似乎工作。你得到的库和工具,但不是测试套件。

我希望有人给出更好的答案和/或解决问题的代码,如果有的话。

16

我只是开了这是导致错误的文件(/test/"md5test.c; rc5test.c; jpaketest.c“),并取代了线

dummytest.c 

#include "dummytest.c" 

这是与上述相同的解决方案,除了它有点快...

+1

typo:/test/"md2test.c用2而不是5 +1 – Gonzo

2

你用什么程序来解压'openssl-1.0.0x.tar.gz'? 7-zip是一个伟大的程序,但似乎有一个错误。

使用tar或其他解压缩程序,例如BreadZip

tar zvxf openssl-1.0.0x.tar.gz

这是相同的解决方案如上所述,但它是一个有点快... :)

14

的问题是,md2test.c实际上是一个符号链接,或符号链接dummytest.c

如果提取openssl-1.0.1c.tar.gz

tar xf openssl-1.0.1c.tar.gz 

那么这些符号链接未保存的任何其他。在Cygwin之后它在那之后起作用;不知道MinGW。

+1

帮助tar -xvzf openssl-1.0.1c.tar.gz只是重新打包它,但这次使用解引用tar选项“-h” tar -cvhzf openssl.tar.gz openssl-1.0.1然后再次提取它愚蠢但它的工作不知道如何提取文件时提取 – tmanthey

1

问题是MinGW/MSYS似乎并不了解的存档中的符号链接。

提取时,可以使用--derefence-h)选项解决此问题。

例如tar -xzvfh archive.tar.gz

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.