1. 설치 환경
Visual Studio 2008, WinXP
2. 설치 준비
OpenSSL 소스 다운로드 : http://www.openssl.org/source
ActivePerl 다운로드 : http://www.activestate.com/activeperl
> ActivePerl 설치
> OpenSSL 소스 압축 해제
3. 시작 > 실행 > cmd
> OpenSSL 폴더로 이동
예) cd D:\My Project\OpenSSL\openssl-0.9.8k
4. OpenSSL Configure
> perl Configure 옵션 VC-WIN32 --prefix=설치디렉토리
예) perl Configure no-idea no-mdc2 no-rc5 VC-WIN32 --prefix="D:\My Project\OpenSSL"
상용알고리즘 idea, mdc2, rc5 미설치.
5. Visual C++ 환경변수 로딩
> C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat
6. Make 파일 생성
> ms\do_masm
7. 소스 수정
> OpenSSL 폴더 (예: D:\My Project\OpenSSL\openssl-0.9.8k)에 있는 다음 파일을 수정한다.
crypto\cversion.c 105 Line
return "OPENSSLDIR: \"" OPENSSLDIR "\"";
=>
return "OPENSSLDIR: \" OPENSSLDIR \"";
crypto\cryptlib.h 84-86 Line
#define X509_CERT_DIR OPENSSLDIR "/certs"
#define X509_CERT_FILE OPENSSLDIR "/cert.pem"
#define X509_PRIVATE_DIR OPENSSLDIR "/private"
=>
#define X509_CERT_DIR OPENSSLDIR "\\certs"
#define X509_CERT_FILE OPENSSLDIR "\\cert.pem"
#define X509_PRIVATE_DIR OPENSSLDIR "\\private"
crypto\opensslconf.h 107-108 Line
#define ENGINESDIR "D:\My Project\OpenSSL/lib/engines"
#define OPENSSLDIR "D:\My Project\OpenSSL/ssl"
=>
#define ENGINESDIR "D:\\My Project\\OpenSSL\\lib\\engines"
#define OPENSSLDIR "D:\\My Project\\OpenSSL\\ssl"
crypto\x509v3\v3_pci.c
crypto\x509v3\v3_pcia.c
Visual C++ 2008에서 위 두파일은 연뒤
파일 > 저장 고급 옵션 > 인코딩 > 유니코드(서명 있는 UTF-8) - 코드 페이지 65001
로 저장한다
> D:\My Project\OpenSSL\openssl-0.9.8k 와 같이 소스가 있는 폴더명에 공백이 포함되어 있는경우
util/copy.pl 파일을 다음과 같이 수정
util/copy.pl 15-26 Line
foreach $arg (@ARGV) {
if ($arg eq "-stripcr")
{
$stripcr = 1;
next;
}
$arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob...
foreach (glob $arg)
{
push @filelist, $_;
}
}
=>
foreach $arg (@ARGV) {
if ($arg eq "-stripcr")
{
$stripcr = 1;
next;
}
$arg =~ s|\\|/|g; # compensate for bug/feature in cygwin glob...
if (-d $arg)
{
$arg="\"$arg\"";
}
foreach (glob $arg)
{
push @filelist, $_;
}
}
8. 정적 라이브러리 컴파일 및 설치
nmake -f ms\nt.mak
nmake -f ms\nt.mak test
namke -f ms\nt.mak install
※ 동적 라이브러리로 설치하고자 할경우 "namke -f ms\ntdll.mak"로 컴파일 및 설치한다.
7 Articles, Search for '프로그래밍/Visual C'
- 2009/05/11 OpenSSL Visual Studio 2008에서 컴파일 및 설치 하기
- 2009/04/21 Visual Studio 2008에서 zlib 1.2.3 컴파일
- 2009/03/31 IE8설치후 VS2008 스크립트 오류 문제 (4)
- 2008/12/29 데이크스트라 알고리즘(Dijkstra algorithm) (1)
- 2008/03/14 GDI+에서 Round Rectangle 그리기.
VS2008에서 컴파일 할경우 다음과 같은 오류 메세지가 출력됨.
1>------ 빌드 시작: 프로젝트: zlib, 구성: DLL ASM Debug Win32 ------
1>Assembling...
1> Assembling: D:\My Project\zlib-1.2.3\contrib\masmx86\inffas32.asm
1>D:\My Project\zlib-1.2.3\contrib\masmx86\inffas32.asm(647) : error A2070:invalid instruction operands
1>D:\My Project\zlib-1.2.3\contrib\masmx86\inffas32.asm(649) : error A2070:invalid instruction operands
1>D:\My Project\zlib-1.2.3\contrib\masmx86\inffas32.asm(663) : error A2070:invalid instruction operands
1>D:\My Project\zlib-1.2.3\contrib\masmx86\inffas32.asm(720) : error A2070:invalid instruction operands
1>Project : error PRJ0019: 도구에서 오류 코드를 반환했습니다. 위치: "Assembling..."
1>빌드 로그가 "file://D:\My Project\zlib-1.2.3\projects\visualc6\Win32_DLL_ASM_Debug\BuildLog.htm"에 저장되었습니다.
1>zlib - 오류: 1개, 경고: 0개
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========
※ 수정
원본 : movd mm7,[esi]
수정 : movd mm7,dword ptr[esi]
Internet Explorer 8 설치후 Visual Studio 2008에서 함수, 변수 추가시 Script 오류가 발생.
임시 해결방법
- regedit 실행
- "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet
Settings\Zones" 항목에 "1000"키 생성 - "1000"키 항목에 DWORD값 추가
- 이름 : 1207
- 값 : 0x000000


Leave your greetings.