2011-08-31 126 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.