Makefile 使用MinGW/MSYS编译OpenSSL时出错
从下载源文件。我遵循OpenSSL文件夹中的INSTALL.M32文件。我打开msys.bat,转到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
$ ./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