curl 7.61.1 vs2017 static library build(MT/MTD) ( with LIB OpenSSL )

in #curl6 years ago (edited)

:: 이 내용은 아래의 구성의 빌드에만 유효하다.

  1. LIB Debug - LIB OpenSSL
  2. LIB Release - LIB OpenSSL

  1. folder 구조

  2. 3rdparty 라이브러리 셋팅
    2-1. openssl (https://www.npcglib.org/~stathis/blog/precompiled-openssl/)

    • openssl-1.1.0f는 아직 curl 빌드에 연동되어 있지 않기 때문에 기존 1.0.2l 버전을 사용한다.
      : 참고 : 1.1.0f로 바뀌면서 기존 libeay32 => libcrypto, ssleay32 =>libssl로 명칭이 변경되었다.
    • openssl-1.0.2l-vs2017.7z 다운로드 후 압축 해제
    • lib 폴더에 precompiled 된 바이너리들 확인 (libeay32MTd.lib, ssleay32MTd.lib, libeay32MT.lib, ssleay32MT.lib)
      : 추후 프로젝트에서 사용 하기 위해 static binary가 필요함.
      : libcurl static 빌드에는 lib파일 없이 빌드 성공 할수 있다. curl.exe 빌드에만 필요하다.
      : curl.exe 도 빌드 성공하고 싶다면 아래와 같이 복사 해준다.
      root/openssl/build/win32/vc15/LIB Debug 에 libeay32MTd.lib, ssleay32MTd.lib를 복사해서 넣는다.
      root/openssl/build/win32/vc15/LIB Release 에 libeay32MT.lib, ssleay32MT.lib를 복사해서 넣는다.
    • include/openssl폴더 통체로 root/inc32/openssl에 붙여 넣기 한다.
  3. curl 셋팅
    3-1. download (https://curl.haxx.se/download.html)

    • 'Windows 32bit 7.61.1 binary the curl project' download
    • root/curl-7.61.1 에 압축 풀어준다.
    • root/curl-7.61.1/projects/Windows/VC15/curl-all.sln 로 솔루션을 연다.

    3-2. libcurl 빌드만 성공하고 curl 빌드가 필요 없다면 아래 구성 내용 수정 할 필요가 없다.

    • curl 프로젝트 => 속성
      LIB Debug - LIB OpenSSL 구성 선택 => 링커 => 입력 에 libeay32.lib 를 libeay32MTd.lib, ssleay32.lib를 ssleay32MTd.lib 로 각각 수정한다.
      LIB Release - LIB OpenSSL 구성 선택 => 링커 => 입력 에 libeay32.lib 를 libeay32MT.lib, ssleay32.lib를 ssleay32MT.lib 로 각각 수정한다.
  4. build

    • 각 구성 별로 아래와 같이 파일이 출력된다.
    • LIB Debug - LIB OpenSSL : root/curl-7.61.1/build/Win32/VC15/LIB Debug - LIB OpenSSL/libcurld.lib
    • LIB Release - LIB OpenSSL : root/curl-7.61.1/build/Win32/VC15/LIB Release - LIB OpenSSL/libcurl.lib
  5. 프로젝트에 적용 (참고 curl_test_static 프로젝트)

    • libcurl static library 를 사용하기 위해서는 전처리기에 'CURL_STATICLIB'를 정의해줘야한다.
    • debug : libcurld.lib, libeay32MTd.lib, ssleay32MTd.lib 사용
    • release : libcurl.lib, libeay32MT.lib, ssleay32MT.lib 사용

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.030
BTC 59238.58
ETH 3176.28
USDT 1.00
SBD 2.45