使用MinGW / MSYS编译OpenSSL时出错

时间:2011-08-31 11:09:53

标签: makefile openssl mingw msys

official OpenSSL site下载源文件。我按照OpenSSL文件夹中的INSTALL.M32文件。我打开msys.bat,转到OpenSSL文件夹,然后输入

$ ./config

它表示“为MinGW配置”,而不是我输入

$ make

几分钟后收到错误:

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

6 个答案:

答案 0 :(得分:16)

我只是打开导致错误的文件(/test/"md5test.c; rc5test.c; jpaketest.c“)并替换了行

dummytest.c

#include "dummytest.c"

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

答案 1 :(得分:14)

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

如果您使用

以外的任何内容提取openssl-1.0.1c.tar.gz
tar xf openssl-1.0.1c.tar.gz

然后没有保留这些符号链接。在Cygwin上它之后工作;不确定MinGW。

答案 2 :(得分:3)

在我的情况下,问题是很少有测试文件(据我记得3个)而不是C ++ - 编码文件的名称(类似于dummitest.c)。我将正确的代码从其他文件夹中的文件复制粘贴到该文件中,但名称相同,一切都很顺利。

答案 3 :(得分:2)

你用什么程序来解压缩'openssl-1.0.0x.tar.gz'? 7-zip是一个很棒的程序,但似乎有一个bug。

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

  

tar zvxf openssl-1.0.0x.tar.gz

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

答案 4 :(得分:1)

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

您可以在解压缩时使用--derefence-h)选项解决此问题。

例如tar -xzvfh archive.tar.gz

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

  

当从存档中读取时,--dereference' ( - h')选项会导致tar在tar写入或读取存档中指定的文件时遵循已存在的符号链接。

答案 5 :(得分:0)

我遇到了同样的问题。 由于问题在于构建测试时,我只是没有制作它们:

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

这是一个可怕的解决方案,但似乎有效。您可以获得库和工具,但不能获得测试套件。

我希望有人能给出更好的答案和/或修复代码中的问题(如果有的话)。