2011-08-31 32 views
7

Tải xuống tệp nguồn từ official OpenSSL site. Tôi làm theo các tập tin INSTALL.M32 trong OpenSSL thư mục. Tôi mở msys.bat, đi đến thư mục OpenSSL, sau đó gõLỗi khi biên dịch OpenSSL với MinGW/MSYS

$ ./config 

Nó nói "Configured cho MinGW", hơn tôi gõ

$ make 

và sau vài phút nhận được lỗi:

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

Trả lời

3

Trong trường hợp của tôi, vấn đề là vài tệp thử nghiệm (3 như xa như tôi nhớ) đã thay vì C++ - mã tên của tệp (giống như dummitest.c). Tôi sao chép-dán mã bên phải vào các tệp đó từ các tệp từ thư mục khác, nhưng có cùng tên và mọi thứ đều ổn.

+2

này nghe có vẻ giống hệt như một vấn đề với các liên kết tượng trưng. Các tệp bị ảnh hưởng khác là 'rc5test.c' và' jpaketest.c'. –

0

Tôi gặp vấn đề tương tự. Như vấn đề là khi xây dựng các bài kiểm tra, tôi chỉ không làm cho họ:

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

Là một giải pháp kinh khủng nhưng có vẻ như để làm việc. Bạn nhận được các thư viện và các công cụ, nhưng không phải là bộ thử nghiệm.

Tôi hy vọng một người nào đó đưa ra câu trả lời tốt hơn và/hoặc khắc phục vấn đề với mã nếu có.

16

tôi chỉ đơn giản mở các tập tin đã được gây ra lỗi (/test/"md5test.c; rc5test.c; jpaketest.c ") và thay thế dòng

dummytest.c 

để

#include "dummytest.c" 

Đó là giải pháp tương tự như đã nêu ở trên, ngoại trừ nó nhanh hơn một chút ...

+1

typo: /test/"md2test.c với 2 thay vì 5 +1 – Gonzo

2

Bạn đã sử dụng chương trình nào để giải nén 'openssl-1.0.0x.tar.gz'? 7-zip là một chương trình tuyệt vời, nhưng có vẻ như có một lỗi.

Sử dụng tar hoặc bộ giải nén khác như BreadZip.

tar zvxf openssl-1.0.0x.tar.gz

Đó là giải pháp tương tự như đã nêu ở trên, ngoại trừ nó là nhanh hơn một chút ... :)

14

Vấn đề là md2test.c thực sự là một biểu tượng liên kết , hoặc liên kết tượng trưng-dummytest.c.

Nếu bạn trích openssl-1.0.1c.tar.gz với bất cứ điều gì khác hơn là

tar xf openssl-1.0.1c.tar.gz 

thì những liên kết tượng trưng không được bảo tồn. Trên Cygwin nó hoạt động sau đó; không chắc về MinGW.

+1

những gì đã giúp là tar -xvzf openssl-1.0.1c.tar.gz chỉ để đóng gói lại nhưng lần này với tùy chọn dereference tar "-h" tar -cvhzf openssl.tar.gz openssl-1.0.1 và sau đó giải nén nó một lần nữa, nhưng nó hoạt động, không biết làm thế nào để dereference các tập tin trong khi giải nén – tmanthey

1

Vấn đề là một liên kết tượng trưng trong kho lưu trữ mà MinGW/MSYS dường như không hiểu.

Bạn có thể làm việc xung quanh nó bằng cách sử dụng tùy chọn --derefence (-h) khi trích xuất.

Ví dụ tar -xzvfh archive.tar.gz

từ 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.

Các vấn đề liên quan