Visual Studio 2013 에서 사용하기 위한 라이브러리 빌드임
■ 준비 과정
1) openssl 소스코드 다운로드 (GitHub)
※ Visual Studio 2013 용으로 빌드하기 위해서는 openssl_1.1.1w 버전을 사용한다. (1.1.x 버전 이용)
※ x64/x86 용 소스코드 폴더를 각각 생성한다. (이전 생성된 obj로 인해 makefile 을 새로 생성해도 링크 오류 발생함
2) 오픈 소스들 간의 코드 트리를 맞춰준다. (3rd_party\openssl)
- 3rd_party
- openssl
- openssl-1.1.1w_x64
- openssl-1.1.1w_x86
3) Perl 설치 (Strawberry Perl for Windows) => 환경변수 %PATH% 에 경로 추가
4) NASM 설치 => 환경변수 %PATH% 에 경로 추가
■ 빌드 과정 (x64)
1. 비주얼스튜디오가 설치하는 명령 콘솔 (VS2013 x64 Native Tools Command Prompt) 을 관리자 권한으로 실행
=> 경로: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
※ Visual Studio 2013 프로젝트에서 라이브러리를 사용하려면 반드시 동일 버전 콘솔을 이용해야 함
※ x64/x86 용 소스코드 폴더를 각각 생성한다. (이전 생성된 obj로 인해 makefile 을 새로 생성해도 링크 오류 발생함)
2. prompt 화면에서 openssl 소스코드 경로로 이동 (예: c:\openssl-1.1.1w_x64)
3. 라이브러리 빌드 (x64)
3-1. 환경 변수 설정 <= x64 prompt 에서 실행하므로 수행하지 않아도 됨
c:\openssl -1.1.1w_x64> "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"
3-2) makefile 생성
c:\openssl -1.1.1w_x64> perl Configure VC-WIN64A no-idea no-md2 no-mdc2 no-rc5 no-rc4 no-asm
3-3) nmake 수행
c:\openssl -1.1.1w_x64> nmake
[참고] 설치 경로 (VC-WIN64)
- PREFIX: %ProgramW6432%\OpenSSL
- OPENSSLDIR: %CommonProgramW6432%\SSL
3-4) 라이브러리 파일 생성됨 (libcrypto, libssl 관련: dll, lib)'
■ 빌드 과정 (x86)
1. 비주얼스튜디오가 설치하는 명령 콘솔 (VS2013 x86 Native Tools Command Prompt) 을 관리자 권한으로 실행
=> 경로: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
2. prompt 화면에서 openssl 소스코드 경로로 이동 (예: c:\openssl -1.1.1w _x86)
3. 라이브러리 빌드 (x86)
3-1. 환경 변수 설정 <= x86 prompt 에서 실행하므로 수행하지 않아도 됨
c:\openssl -1.1.1w_x86> "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
3-2. makefile 생성
c:\openssl -1.1.1w_x86> perl Configure VC-WIN32 no-idea no-md2 no-mdc2 no-rc5 no-rc4 no-asm
3-3. nmake 수행
c:\openssl -1.1.1w_x86> nmake
[참고] 설치 경로 (VC-WIN32)
- PREFIX: %ProgramFiles(x86)%\OpenSSL
- OPENSSLDIR: %CommonProgramFiles(x86)%\SSL
3-4. 라이브러리 파일 생성됨 (libcrypto, libssl 관련: dll, lib)
4. 기타 명령
4-1. nmake 테스트
c:\openssl -1.1.1w> nmake test
4-2. 빌드한 모듈 설치
c:\openssl -1.1.1w> nmake install
■ 알게된 것
- nmake 를 이용한 빌드 과정에서 오류 발생 시 기존 .obj 파일들을 제거한 후 다시 nmake 수행 시 성공하기도 한다고 함
- visual studio 2013 프로젝트에서 openssl 라이브러리를 참조하기 위해서는 동일 버전의 visual studio prompt 으로 반드시 빌드 해야 함
Reference
https://gist.github.com/Zingam/9e5fb170076490bedda3
https://dev.to/masanori_msl/windows-installing-openssl-3bac
https://github.com/openssl/openssl/blob/master/NOTES-WINDOWS.md#native-builds-using-visual-c++
https://tmjb.tistory.com/3
https://gist.github.com/Zingam/9e5fb170076490bedda3
-- 이전 자료 --
다운로드 및 설치
- OpenSSL 소스 코드 다운로드
- 최신 버전을 다운로드 받아 압축을 해제 (d:\openssl)
- Active Perl 설치
- 기본 폴더에 설치 (c:\perl64)
OpenSSL 을 perl 을 이용해 컴파일 시 필요한 패키지
- NSAM
- dmake
- PPM
※ CPAN 을 이용해 패키지 다운로드 후 c:\perl64\bin 폴더에 .exe 복사
※ 환경변수 PATH 에 개별 패키지 경로를 넣어도 perl 에서 찾지 못함
빌드 방법
- OpenSSL 폴더로 이동 (d:\openssl)
- 커맨드 창을 실행하여 아래 명령 수행
- perl ./Configure VC-WIN64A no-idea no-md2 no-mdc2 no-rc5 no-rc4 --prefix=d:\openssl\build
- 옵션 설명
- 특허가 걸려있는 알고리즘 제외: no-idea no-md2 no-mdc2 no-rc5 no-rc4
- 운영체제: VC-WIN32 (32bit), VC-WIN64A (64bit)
- prefix: 빌드 결과파일 저장 경로
- Visual Studio 네이티브 도구 명령 프롬프트를 관리자 권한으로 실행
- nmake
- nmake install
※ 본인의 Visual Studio 버전 및 플랫폼(32/64bit) 에 맞게 선택 (VS2013 x64 도구 모음 이용)
CPAN 이란
- CPAN(Comprehensive Perl Archive Network)
- Perl 을 설치한 후 환경변수에 경로를 잡아주면 cpan 을 사용할 수 있다.
- 커맨드 창에서 cpan 입력하면 cpan> 프롬프트가 뜬다.
- 패키지명을 meta::cpan 사이트에서 찾은 후 cpan 프롬프트에서 다운로드 받을 수 있다.
- cpan> install PPM
- cpan> install dmake
- cpan> install Alien::nsam
nmake 란
- Microsoft Program Maintenance Utility
- Visual studio 네이티브 도구 명령 프롬프트를 띄우면 nmake 를 사용할 수 있다.
Reference
- pigstoe83 | OpenSSL 빌드하기 (for Windows) 👍️
- 정광섭 | OpenSSL 컴파일 & 빌드
- Precompiled binary download
- 실행파일과 dll 배포
- Header 와 Library
'배움의공간(學) > 기타' 카테고리의 다른 글
Stack overflow survey (0) | 2023.01.02 |
---|---|
[DP] SOLID 원칙 (0) | 2022.12.22 |
[DP] GoF (Gang of Four) (0) | 2022.12.22 |
if(kakao) dev2022 을 보며 (0) | 2022.12.08 |
[Microsoft] Learn .NET (0) | 2019.06.18 |
댓글