Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Установка OpenSSL по справке – давайте разберемся!


Автор: bomberman 11.4.2008, 09:34

Не смог установить OpenSSL (0.9.8g) по справке, но пытался это сделать следующим образом. 
Читаю файл INSTALL.W32 (INSTALLATION ON THE WIN32 PLATFORM). 

Читаю с самого начала: 
“Heres a few comments about building OpenSSL in Windows environments.  Most
 of this is tested on Win32 but it may also work in Win 3.1 with some
 modification.
 You need Perl for Win32.  Unless you will build on Cygwin, you will need
 ActiveState Perl, available from http://www.activestate.com/ActivePerl.”
Скачал, указанные в источнике 
ActivePerl-5.10.0.1002-MSWin32-x86-283697.msi 
ActivePerl-5.10.0.1002-MSWin32-x86-283697.zip
ActivePerl-5.10.0.1002-MSWin32-x86-283697-symbols.zip
и установил все это.

Читаю далее:
“Visual C++
 ----------
 If you want to compile in the assembly language routines with Visual C++ then
 you will need an assembler.”
 Допустим я не желаю “to compile in the assembly language”, поэтому рискну
 Пропустить несколько абзацев про MASM/NASM

 Далее читаю очередной абзац, который, непонятно, относится ли еще к 
“to compile in the assembly language” или уже нет (с одной стороны использование perl’a указывается только тут, а с другой – далее идет абзац про MASM/NASM – 
складывается представление, что его использование здесь обязательно. Обязтельно, кажется, все таки потому, что далее по контексту сразу после MASM/NASM идет фраза “Then from the VC++ environment at a prompt do…”):
“Firstly you should run Configure:

 > perl Configure VC-WIN32 --prefix=c:/some/openssl/dir

Where the prefix argument specifies where OpenSSL will be installed to.” 
Тем не менее я выполнил команду perl Configure…, но результат ее работы 
узнать сложно. (Хотелось бы надеяться, что пока и не надо и рано его узнавать.)

Еду далее. 
“ Then from the VC++ environment at a prompt do:

 > nmake -f ms\ntdll.mak

 If all is well it should compile and you will have some DLLs and executables
 in out32dll. If you want to try the tests then do:
 
 > nmake -f ms\ntdll.mak test


To install OpenSSL to the specified location do:

> nmake -f ms\ntdll.mak install ” 
Далее выполнял вышеуказанные в контексе команды – кажется, эффекта никакого. И вопрос еще в том где указывается “ the specified location” в последней команде.


Автор: Lazin 11.4.2008, 11:31
результат выполнения команды
Цитата

nmake -f ms\ntdll.mak install 
какой?

Автор: bomberman 11.4.2008, 11:49
Результат выполнения команды nmake -f ms\ntdll.mak install  - никакой, на мой взгляд, потомучто 
я представляю результат в виде появления папки под названием 'install' где-нибудь в районе корневого каталога или в
c:/some/openssl/dir - больше не имею представления какой результат выполнения nmake -f ms\ntdll.mak install может
иметь место. Поправь, если ошибаюсь по поводу представляемого результата. И вообще на повестке дня стоит вопрос-
как правильно установить OpenSSL, или хотя бы с чего начать установку чисто практически.

Автор: jonie 12.4.2008, 12:08
распаковал в C:\temp\openssl-0.9.8g
Код

шаг1:
C:\temp\openssl-0.9.8g>perl Configure VC-WIN32 --prefix=c:/temp/openssl-bin/

шаг2:(делаю на примере vs2005):
C:\temp\openssl-0.9.8g>%comspec% /k ""c:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"" x86
Setting environment for using Microsoft Visual Studio 2005 x86 tools.

шаг3: (в состав vs2005 входит MASM 8)
C:\temp\openssl-0.9.8g>ms\do_masm.bat

шаг4: (скомпилировать решил динамику, для статики указывается ms\nt.mak )
C:\temp\openssl-0.9.8g>nmake -f ms\ntdll.mak 

шаг5: покурить...

шаг6: убедиться что все ок
C:\temp\openssl-0.9.8g>cd out32dll && dir *.lib *.dll
 Содержимое папки C:\temp\openssl-0.9.8g\out32dll
12.04.2008  13:08           664 514 libeay32.lib
12.04.2008  13:08            52 184 ssleay32.lib

 Содержимое папки C:\temp\openssl-0.9.8g\out32dll
12.04.2008  13:08         1 028 096 libeay32.dll
12.04.2008  13:08           200 704 ssleay32.dll


итого мы имеем lib файлы и dll, а также папку include из дистрибутива.
это необходимо и достаточно для работы с openSSL

!! Есть одно большое НО!! используется VC CRT runtime
чтобы этого небыло делать нада статику...поправив make файл

вот так написать :
Код

CFLAG= /MT блаблабла (убрав /MD)

Автор: darkmamba 18.7.2011, 17:20
question:
          у меня на первом шаге выдает "can't open perl script 'Configurate': no such file or directory" что я сделал не так?

Еще вопрос на засыпку, у меня щас есть openssl только более ранняя, я пытаюсь подключить в проекте <winsock2.h> 

#include <stdio.h>
#include <winsock2.h>
#include <openssl/ssl.h>

чтобы сделать клиент, а он мне выдает 

Код

1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\openssl\ossl_typ.h(178) : error C2143: синтаксическая ошибка: отсутствие ")" перед "константа"
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\openssl\ossl_typ.h(178) : error C2143: синтаксическая ошибка: отсутствие ";" перед "константа"
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\openssl\ossl_typ.h(178) : error C2040: LPCSTR: "ocsp_response_st" отличается по уровням косвенного обращения от "const CHAR *"
1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\openssl\ossl_typ.h(178) : error C2059: синтаксическая ошибка: )


и теперь я решил поставить более новый openssl в надежде, что у меня будет все хорошо работать, НО я забыл как компилил старый  smile  

jmp question

Автор: Alca 18.7.2011, 18:14
http://www.slproweb.com/products/Win32OpenSSL.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)