Makefile 使用MinGW/MSYS编译OpenSSL时出错

Makefile 使用MinGW/MSYS编译OpenSSL时出错,makefile,openssl,mingw,msys,Makefile,Openssl,Mingw,Msys,从下载源文件。我遵循OpenSSL文件夹中的INSTALL.M32文件。我打开msys.bat,转到OpenSSL文件夹,然后键入 $ ./config 它说“为MinGW配置”,而不是我输入的 $ make 几分钟后收到错误: md2test.c:1:10: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token 我也有同样的问题。 由于问题是在构建测试时,我没有进行测试: make Makefil

从下载源文件。我遵循OpenSSL文件夹中的INSTALL.M32文件。我打开msys.bat,转到OpenSSL文件夹,然后键入

$ ./config
它说“为MinGW配置”,而不是我输入的

$ make
几分钟后收到错误:

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

我也有同样的问题。 由于问题是在构建测试时,我没有进行测试:

make Makefile openssl.pc libssl.pc libcrypto.pc build_libs build_apps build_tools
这是一个可怕的解决方案,但似乎有效。您可以得到库和工具,但不能得到测试套件


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

在我的例子中,问题是很少有测试文件(据我所知是3个)使用C++代码来代替文件名(类似于dummitest.C)。我将正确的代码从其他文件夹的文件复制粘贴到该文件中,但使用相同的名称,一切正常

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

dummytest.c


这与上面提到的解决方案相同,只是速度快了一点…

您使用了什么程序来解压缩“openssl-1.0.0x.tar.gz”?7-zip是一个很棒的程序,但似乎有一个bug

使用焦油或其他解压剂,例如

tar zvxf openssl-1.0.0x.tar.gz


这是与上述相同的解决方案,只是速度快了一点……:)

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

如果您使用除以下内容以外的任何内容提取了
openssl-1.0.1c.tar.gz

tar xf openssl-1.0.1c.tar.gz

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

问题在于归档文件中的一个符号链接,MinGW/MSYS似乎不理解

您可以在提取时使用
--dereffence
-h
)选项来解决此问题

例如
tar-xzvfh archive.tar.gz

发件人:

从存档中读取时,
--dereference'(
-h')选项会在tar写入或读取存档中命名的文件时,使tar跟随已经存在的符号链接


这听起来就像是符号链接的问题。其他受影响的文件是
rc5test.c
jpaketest.c
.typo:/test/“md2test.c使用2而不是5+1帮助的是tar-xvzf openssl-1.0.1c.tar.gz只是重新打包,但这次使用了解除引用tar选项”-h“tar-cvhzf openssl.tar.gz openssl-1.0.1,然后再次提取它。这很愚蠢,但很有效。不知道如何在提取时取消对文件的引用
tar xf openssl-1.0.1c.tar.gz