Showing posts with label OpenSSL. Show all posts
Showing posts with label OpenSSL. Show all posts
2018/08/21
Build Poco 1.9.0 with OpenSSL and MySQL
오랜만에 Poco 라이브러리 1.9 버전을 빌드해 보았다.
얼마전부터 계속 시도해 보았지만 OpenSSL을 포함하는데 문제가 있어서 계속 실패를 하다가 인터넷을 통해 도움을 얻어 드디어 성공하였다.
일단 Poco 라이브러리의 추가 포함 라이브러리는 목적에따라 OpenSSL과 MySQL을 추가할 수 있다.
언제든 사용할 수 있는 라이브러리라서 빌드할 때 이들을 추가해 놓으면 편할 것 같아서 항상 이를 포함하여 빌드한다.
우선 빌드에 필요한 것들은 다음과 같다.
Poco Library 1.9
https://github.com/pocoproject/poco
poco-poco-1.9.0-release.zip
OpenSSL
https://github.com/pocoproject/openssl
openssl-develop.zip
MySQL
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
mysql-5.7.23-win32.zip
mysql-5.7.23-winx64.zip
OpenSSL 빌드하기
https://github.com/pocoproject/openssl 에서 받은 소스를 빌드한다.
이미 Vsiual Studio 2013 버전으로 빌드가 되어있는 dll과 라이브러리가 소스에 포함되어있어 이를 이용하는 경우 빌드를 할 필요가 없다.
혹시 OpenSSL 버전을 변경하고자 하는경우 다시 빌드를 해야한다.
2018년 08월 17일 현재 올려져있는 버전은 1.1.0g 버전이다.
새롭게 빌드를 하고자 하는경우 소스를 압축해제하고 해제한 폴더에서 다음 명령을 수행하면 된다.
build.ps1을 실행하면 된다.
build.ps1 명령을 아래와 같은 형식이고,
build.ps1 [-openssl_release 1.0.0 | 1.1.0]
[-vs_version 150 | 140 | 120 | 110 | 100 | 90]
[-config release | debug | both]
[-platform Win32 | x64] # TODO WinCE/WCE
[-library shared | static | both]
실행 예제는 다음과 같다.
powershell -ExecutionPolicy RemoteSigned -File build.ps1 -openssl_release 1.1.0h -vs_version 120 -config both -platform x64 -library both
빌드를 하면 소스 경로에 VC_(버전번호) 의 폴더가 만들어지고 그 안에 결과 파일들이 생성된다.
Poco 추가 라이브러리 구성하기
먼저 Poco 라이브러리 소스 파일(poco-poco-1.9.0-release.zip)을 압축해제한다.
그리고 OpenSSL을 빌드를 하지 않은경우 openssl-develop.zip 파일의 build 폴더를 Poco 소스의 openssl 폴더에 복사한다.
OpenSSL을 빌드하였다면 결과 폴더(VC_(버전번호))를 openssl 폴더에 복사하고 이름을 build로 변경한다.
Poco 소스 폴더에 mysql 폴더를 생성하고 mysql-5.7.23-win32.zip 파일의 include 와 lib 폴더를 압축해제하고 lib 폴더는 lib32로 변경한다.
그리고 mysql-5.7.23-winx64.zip 파일의 lib 폴더를 mysql 폴더에 압축해제하고 lib64로 변경한다.
그러면 최종적으로 추가 생성된 폴더는 아래와 같은 구성된다.
poco-poco-1.9.0-release
openssl
build
include
openssl
win32
bin
lib
win64
bin
lib
mysql
include
lib32
lib64
빌드를 하기전에 buildwin.cmd 파일에서 위에서 구성한 mysql 폴더를 사용하도록 변경을 해 주어야한다.
PLATFORM 파라메터를 인식한 후에 아래 코드를 추가(62line)한다.
rem MySQL
set MYSQL_DIR=%POCO_BASE%\mysql
set MYSQL_INCLUDE=%MYSQL_DIR%\include
if "%PLATFORM%"=="Win32" (set MYSQL_LIB=%MYSQL_DIR%\lib32)
if "%PLATFORM%"=="x64" (set MYSQL_LIB=%MYSQL_DIR%\lib64)
set INCLUDE=%INCLUDE%;%MYSQL_INCLUDE%
set LIB=%LIB%;%MYSQL_LIB%
echo MySQL Path: %MYSQL_DIR%
echo Include: %INCLUDE%
echo Lib: %LIB%
pause
echo 명령과 pause 명령은 mysql 관련 설정이 제대로 되었는지 확인하기 위해 넣은 코드이다.
이제 Visual Studio 버전에 맞는 빌드 명령을 호출하면 된다.
buildwin.cmd 명령 형식은 다음과 같다.
Usage:
------
buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
VS_VERSION: "90|100|110|120|140|150"
ACTION: "build|rebuild|clean"
LINKMODE: "static_mt|static_md|shared|all"
CONFIGURATION: "release|debug|both"
PLATFORM: "Win32|x64|WinCE|WEC2013"
SAMPLES: "samples|nosamples"
TESTS: "tests|notests"
TOOL: "devenv|vcexpress|wdexpress|msbuild"
아래 명령은 Visual Studio 2013 버전으로 빌드하기 위해 실행한 명령이다.
buildwin.cmd 120 build all both x64 samples tests msbuild
빠르게 빌드만 하려면 SAMPLES과 TESTS에 대하여 nosamples 와 notests로 설정하여 빌드한다.
얼마전부터 계속 시도해 보았지만 OpenSSL을 포함하는데 문제가 있어서 계속 실패를 하다가 인터넷을 통해 도움을 얻어 드디어 성공하였다.
일단 Poco 라이브러리의 추가 포함 라이브러리는 목적에따라 OpenSSL과 MySQL을 추가할 수 있다.
언제든 사용할 수 있는 라이브러리라서 빌드할 때 이들을 추가해 놓으면 편할 것 같아서 항상 이를 포함하여 빌드한다.
우선 빌드에 필요한 것들은 다음과 같다.
Poco Library 1.9
https://github.com/pocoproject/poco
poco-poco-1.9.0-release.zip
OpenSSL
https://github.com/pocoproject/openssl
openssl-develop.zip
MySQL
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
mysql-5.7.23-win32.zip
mysql-5.7.23-winx64.zip
OpenSSL 빌드하기
https://github.com/pocoproject/openssl 에서 받은 소스를 빌드한다.
이미 Vsiual Studio 2013 버전으로 빌드가 되어있는 dll과 라이브러리가 소스에 포함되어있어 이를 이용하는 경우 빌드를 할 필요가 없다.
혹시 OpenSSL 버전을 변경하고자 하는경우 다시 빌드를 해야한다.
2018년 08월 17일 현재 올려져있는 버전은 1.1.0g 버전이다.
새롭게 빌드를 하고자 하는경우 소스를 압축해제하고 해제한 폴더에서 다음 명령을 수행하면 된다.
build.ps1을 실행하면 된다.
build.ps1 명령을 아래와 같은 형식이고,
build.ps1 [-openssl_release 1.0.0 | 1.1.0]
[-vs_version 150 | 140 | 120 | 110 | 100 | 90]
[-config release | debug | both]
[-platform Win32 | x64] # TODO WinCE/WCE
[-library shared | static | both]
실행 예제는 다음과 같다.
powershell -ExecutionPolicy RemoteSigned -File build.ps1 -openssl_release 1.1.0h -vs_version 120 -config both -platform x64 -library both
빌드를 하면 소스 경로에 VC_(버전번호) 의 폴더가 만들어지고 그 안에 결과 파일들이 생성된다.
Poco 추가 라이브러리 구성하기
먼저 Poco 라이브러리 소스 파일(poco-poco-1.9.0-release.zip)을 압축해제한다.
그리고 OpenSSL을 빌드를 하지 않은경우 openssl-develop.zip 파일의 build 폴더를 Poco 소스의 openssl 폴더에 복사한다.
OpenSSL을 빌드하였다면 결과 폴더(VC_(버전번호))를 openssl 폴더에 복사하고 이름을 build로 변경한다.
Poco 소스 폴더에 mysql 폴더를 생성하고 mysql-5.7.23-win32.zip 파일의 include 와 lib 폴더를 압축해제하고 lib 폴더는 lib32로 변경한다.
그리고 mysql-5.7.23-winx64.zip 파일의 lib 폴더를 mysql 폴더에 압축해제하고 lib64로 변경한다.
그러면 최종적으로 추가 생성된 폴더는 아래와 같은 구성된다.
poco-poco-1.9.0-release
openssl
build
include
openssl
win32
bin
lib
win64
bin
lib
mysql
include
lib32
lib64
빌드를 하기전에 buildwin.cmd 파일에서 위에서 구성한 mysql 폴더를 사용하도록 변경을 해 주어야한다.
PLATFORM 파라메터를 인식한 후에 아래 코드를 추가(62line)한다.
rem MySQL
set MYSQL_DIR=%POCO_BASE%\mysql
set MYSQL_INCLUDE=%MYSQL_DIR%\include
if "%PLATFORM%"=="Win32" (set MYSQL_LIB=%MYSQL_DIR%\lib32)
if "%PLATFORM%"=="x64" (set MYSQL_LIB=%MYSQL_DIR%\lib64)
set INCLUDE=%INCLUDE%;%MYSQL_INCLUDE%
set LIB=%LIB%;%MYSQL_LIB%
echo MySQL Path: %MYSQL_DIR%
echo Include: %INCLUDE%
echo Lib: %LIB%
pause
echo 명령과 pause 명령은 mysql 관련 설정이 제대로 되었는지 확인하기 위해 넣은 코드이다.
이제 Visual Studio 버전에 맞는 빌드 명령을 호출하면 된다.
buildwin.cmd 명령 형식은 다음과 같다.
Usage:
------
buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
VS_VERSION: "90|100|110|120|140|150"
ACTION: "build|rebuild|clean"
LINKMODE: "static_mt|static_md|shared|all"
CONFIGURATION: "release|debug|both"
PLATFORM: "Win32|x64|WinCE|WEC2013"
SAMPLES: "samples|nosamples"
TESTS: "tests|notests"
TOOL: "devenv|vcexpress|wdexpress|msbuild"
아래 명령은 Visual Studio 2013 버전으로 빌드하기 위해 실행한 명령이다.
buildwin.cmd 120 build all both x64 samples tests msbuild
빠르게 빌드만 하려면 SAMPLES과 TESTS에 대하여 nosamples 와 notests로 설정하여 빌드한다.
2016/05/03
Poco Library 빌드하기
얼마전에 공개된 Poco Library v1.7.3 버전을 빌드해 보았다.
배포되는 Poco Library 중 poco-1.7.3-all.zip 을 다운 받았다. 이 버전은 OpenSSL과 MySQL Client 라이브러리를 필요로 한다.
Poco Library 빌드를 위한 파일은 아래와 같다.
Poco Library
http://pocoproject.org/releases/poco-1.7.3/poco-1.7.3-all.zip
OpenSSL
https://slproweb.com/products/Win32OpenSSL.html
https://slproweb.com/download/Win32OpenSSL-1_0_2g.exe
https://slproweb.com/download/Win64OpenSSL-1_0_2g.exe
MySQL
32-bit ZIP Archive(http://dev.mysql.com/downloads/file/?id=462038)
64-bit ZIP Archive(http://dev.mysql.com/downloads/file/?id=462039)
우선 poco-1.7.3-all.zip 파일을 특정 경로에 압축을 해제 한다. 압축 해제 후 존재하지 않는 폴더 Bin, Bin64, Lib, Lib64를 생성한다. 여기서는 D:\poco-1.7.3-all 에 압축을 해제한 것으로 간주하고 기록 하였다.
Win32OpenSSL-1_0_2g.exe 설치후 설치 경로의 bin 폴더의 libeay32.dll, ssleay32.dll파일을 Bin 폴더에 복사하고 lib 폴더의 libeay32.lib, ssleay32.lib파일을 Lib 폴더에 복사한다. 그리고 lib/VC/static 폴더의 모든파일을 Lib 폴더로 복사한다.
Win64OpenSSL-1_0_2g.exe 파일의 경우 Bin64와 Lib64 폴더로 복사를 한다. 마지막으로 include 폴더의 openssl 폴더를 D:\poco-1.7.3-all\Crypto\include 폴더에 복사한다.
MySQL에 포함되어 있는 include 폴더의 모든 파일들을 D:\poco-1.7.3-all\Data\MySQL\include 복사하고 32비트 파일에 포함되어 있는 libmysql.dll파일과 libmysqld.dll 파일을 Bin 폴더로 libmysql.lib파일과 libmysqld.lib 파일을 Lib 폴더로 복사한다. 64비트 파일에 포함되어 있는 파일들은 각각 Bin64와 Lib64로 복사한다.
마지막으로 buildwin.cmd 파일을 열어 편집 한다.
수정해야할 내용은 set OPENSSL_LIB 부분으로 32비트 버전을 빌드 할 때에는 D:\poco-1.7.3-all\Lib 로 설정하고 빌드하고 64비트로 빌드 할 때에는 D:\poco-1.7.3-all\Lib64로 설정하고 빌드 한다.
이렇게 설정하고 아래와 같이 sample과 test프로젝트를 제외하고 빌드한다.
32bit: D:\poco-1.7.3-all\buildwin 110 build all both Win32 nosamples notests devenv
64bit: D:\poco-1.7.3-all\buildwin 110 build all both x64 nosamples notests devenv
buildwin 실행 결과 32비트와 64비트 모두 에러 없이 빌드를 마쳤고 dll과 lib 파일이 생성 되었다.
배포되는 Poco Library 중 poco-1.7.3-all.zip 을 다운 받았다. 이 버전은 OpenSSL과 MySQL Client 라이브러리를 필요로 한다.
Poco Library 빌드를 위한 파일은 아래와 같다.
Poco Library
http://pocoproject.org/releases/poco-1.7.3/poco-1.7.3-all.zip
OpenSSL
https://slproweb.com/products/Win32OpenSSL.html
https://slproweb.com/download/Win32OpenSSL-1_0_2g.exe
https://slproweb.com/download/Win64OpenSSL-1_0_2g.exe
MySQL
32-bit ZIP Archive(http://dev.mysql.com/downloads/file/?id=462038)
64-bit ZIP Archive(http://dev.mysql.com/downloads/file/?id=462039)
우선 poco-1.7.3-all.zip 파일을 특정 경로에 압축을 해제 한다. 압축 해제 후 존재하지 않는 폴더 Bin, Bin64, Lib, Lib64를 생성한다. 여기서는 D:\poco-1.7.3-all 에 압축을 해제한 것으로 간주하고 기록 하였다.
Win32OpenSSL-1_0_2g.exe 설치후 설치 경로의 bin 폴더의 libeay32.dll, ssleay32.dll파일을 Bin 폴더에 복사하고 lib 폴더의 libeay32.lib, ssleay32.lib파일을 Lib 폴더에 복사한다. 그리고 lib/VC/static 폴더의 모든파일을 Lib 폴더로 복사한다.
Win64OpenSSL-1_0_2g.exe 파일의 경우 Bin64와 Lib64 폴더로 복사를 한다. 마지막으로 include 폴더의 openssl 폴더를 D:\poco-1.7.3-all\Crypto\include 폴더에 복사한다.
MySQL에 포함되어 있는 include 폴더의 모든 파일들을 D:\poco-1.7.3-all\Data\MySQL\include 복사하고 32비트 파일에 포함되어 있는 libmysql.dll파일과 libmysqld.dll 파일을 Bin 폴더로 libmysql.lib파일과 libmysqld.lib 파일을 Lib 폴더로 복사한다. 64비트 파일에 포함되어 있는 파일들은 각각 Bin64와 Lib64로 복사한다.
마지막으로 buildwin.cmd 파일을 열어 편집 한다.
수정해야할 내용은 set OPENSSL_LIB 부분으로 32비트 버전을 빌드 할 때에는 D:\poco-1.7.3-all\Lib 로 설정하고 빌드하고 64비트로 빌드 할 때에는 D:\poco-1.7.3-all\Lib64로 설정하고 빌드 한다.
이렇게 설정하고 아래와 같이 sample과 test프로젝트를 제외하고 빌드한다.
32bit: D:\poco-1.7.3-all\buildwin 110 build all both Win32 nosamples notests devenv
64bit: D:\poco-1.7.3-all\buildwin 110 build all both x64 nosamples notests devenv
buildwin 실행 결과 32비트와 64비트 모두 에러 없이 빌드를 마쳤고 dll과 lib 파일이 생성 되었다.
Subscribe to:
Posts
(
Atom
)