openssl을 Windows XP 32bits환경에서 VC6로 컴파일할 일이 생겨 작업 후 정리를 하고자 한다.

먼저 openssl 소스를 http://www.openssl.org에서 다운로드 받는다.
내가 받은 버전은 openssl-1.0.0g 이다.

다음으로 Configure에 사용할 ActivePerl을 http://www.activestate.com/activeperl/downloads에서 다운로드 받은 후 설치한다.
내가 받은 버전은 5.14.2.1402이며, 설치시 설치 옵션에 Path 환경 변수 등록이 체크 되어 있는지 확인하여 설치한다.

다음으로 nasm을 다운로드 받는다. nasm을 사용안해도 되는 것 같지만, 속도를 위해 다운로드 받는다.
http://nasm.sourceforge.net/에서 다운받았으면, 적당한 경로에 압축을 해제한 후 Path 환경변수에 경로를 등록한다.
내가 받은 버전은 nasm-2.09.10-win32.zip 이다.

모두 다운로드 받았으면, openssl 소스를 적당한 곳에 압축해제한 후 명령프롬프트를 이용해 아래 순서대로 실행한다.

>perl Configure VC-WIN32 --prefix=c:\openssl-1.0.0g -DOPENSSL_USE_IPV6=0
>ms\do_nasm
>nmake -f ms\ntdll.mak
>nmake -f ms\ntdll.mak test
>nmake -f ms\ntdll.mak install

configure시 prefix 경로를 c:\openssl-1.0.0g로 설정하였으므로 해당 경로에 설치된다.
그리고 -DOPENSSL_USE_IPV6=0 옵션을 주지 않으면, nmake시 아래와 같은 에러가 발생하는데,

> .\apps\s_cb.c(731) : error C2027: use of undefined type 'in6_addr'
>         .\apps\s_cb.c(731) : see declaration of 'in6_addr'

이는 http://www.mail-archive.com/openssl-dev@openssl.org/msg29240.html 내용을 참고해보면,
VC6는 아직 IPv6를 제대로 지원하지 않아 발생하는 문제로 VC 2003 이상을 사용하여 컴파일 하거나
위와 같이 옵션을 주어 IPv6를 사용하지 않으면 된다.
Posted by dcmru
,