Ошибка компиляции OpenSSL с MinGW / MSYS - PullRequest
7 голосов
/ 31 августа 2011

Загрузка исходных файлов с официального сайта OpenSSL .Я следую за файлом INSTALL.M32 в папке OpenSSL.Я открываю msys.bat, захожу в папку OpenSSL, затем набираю

$ ./config

. Там написано «Настроен для MinGW», затем я набираю

$ make

и через несколько минут получаю ошибку

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

Ответы [ 6 ]

16 голосов
/ 04 декабря 2011

Я просто открыл файлы, которые вызывали ошибку (/test/"md5test.c; rc5test.c; jpaketest.c "), и заменил строку

dummytest.c

на

#include "dummytest.c"

Это такое же решение, как указано выше, за исключением того, что оно немного быстрее ...

14 голосов
/ 13 мая 2012

Проблема в том, что md2test.c на самом деле является символической ссылкой или символической ссылкой на dummytest.c.

Если вы извлекли openssl-1.0.1c.tar.gz с чем-либо другимчем

tar xf openssl-1.0.1c.tar.gz

тогда эти символические ссылки не сохранились.На Cygwin это работает после этого;не уверен насчет MinGW.

3 голосов
/ 07 сентября 2011

В моем случае проблема заключалась в том, что в нескольких тестовых файлах (3, насколько я помню) вместо C ++ было написано имя файла (что-то вроде dummitest.c). Я копирую и вставляю правильный код в эти файлы из файлов из другой папки, но с тем же именем, и все прошло хорошо.

2 голосов
/ 07 февраля 2012

Какую программу вы использовали для распаковки openssl-1.0.0x.tar.gz?7-zip - отличная программа, но, похоже, есть ошибка.

Используйте tar или другой распаковщик, такой как BreadZip .

tar zvxf openssl-1.0.0x.tar.gz

Это такое же решение, как указано выше, за исключением того, что оно немного быстрее ...:)

1 голос
/ 20 июня 2015

Проблема в символической ссылке в архиве, которую MinGW / MSYS, похоже, не понимает.

Вы можете обойти это, используя опцию --derefence (-h) при извлечении.

Например tar -xzvfh archive.tar.gz

от http://www.gnu.org/software/tar/manual/html_node/dereference.html:

При чтении из архива опция --dereference' ( -h ') заставляет tar следовать уже существующей символической ссылке, когда tar записывает или читает файл с именем в архиве.

0 голосов
/ 06 сентября 2011

У меня такая же проблема.Поскольку проблема заключается в создании тестов, я просто не сделал их:

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

Это ужасное решение, но, похоже, оно работает.Вы получаете библиотеки и инструменты, но не набор тестов.

Я надеюсь, что кто-то даст лучший ответ и / или исправит проблему с кодом, если он есть.

...