vs2015에서 cpprestsdk 2.10.6 사용하기(Static/MD)



vs2015를 지원하는 cpprestsdk의 마지막 버전은 2.10.6이다.
이후 버전은 release 파일에 솔루션 파일이 없기 때문에 cmake로 직접 빌드해야 하며, 최소 vs2017 이상이 필요하다. 그런데, vs2017을 쓸 수 있는 환경이라면 Nuget이나 vcpkg로 설치하는 게 낫다. (vcpkg에서 의존성 기술에 대한 문제점도 참고하자.)

2.10.6 release 파일은 cpprestsdk github 페이지에서 내려 받을 수 있다.

여기서 하려는 건, static 빌드, 그러니까 lib으로 빌드하되, 런타임 라이브러리는 /MD로 설정하는 경우다.

  1. cpprestsdk-2.10.6.zip 압축을 푼 후, 런타임 라이브러리를 조정한다. 01.png

  2. 전처리기 정의_NO_ASYNCRTIMP를 추가해준다. 02.png

  3. cpprestsdk를 사용할 target dll의 전처리기 정의에도 _NO_ASYNCRTIMP를 추가한다.

  4. 다음으로, target dll의 추가 종속성에 다음 라이브러리들을 입력한다.
     zlibstatic.lib;ssleay32.lib;libeay32.lib;bcrypt.lib;crypt32.lib;winhttp.lib;libcpprest140_2_10.lib
    
  5. cpprestsdk 하위의 pacakges폴더에서, 추가 종속성에 입력한 라이브러리들을 가져와 필요한 위치에 복사한다. packages 폴더 하위에는, 아래와 같이 cpprestsdk의 의존성 모듈에 대한 빌드 바이너리가 포함되어 있다. 03.png

빌드가 끝나면 target dll을 Dependency Viewer에서 봤을 때, cpprest140_2_10.dll이 표시되지 않는지 확인한다.

참고

How to statically link cpprest without dll files in VS project?