상세 컨텐츠

본문 제목

Building libtorrent with MinGW

오픈소스 연구/libtorrent

by ryujt 2016. 3. 18. 18:16

본문



몇 년 전 사용하다가 다시 사용하려하니 빌드 자체에서 시간을 허비하여 정리 차원에서 남깁니다.  일단 빌드까지만 성공 했을 뿐, 예제를 컴파일 할 때 소켓 라이브러리 에러가 나네요.  (물론 라이브러리는 포함 시켰지만)


일단 현재까지의 상황만 정리합니다.  시행착오는 길었으나, 결과는 너무 초라할 정도로 간단하네요 ㅡ.ㅡ;


당연히 MinGW가 필요합니다.



boost 설치


boost 파일을 다운받고 boost가 root 위치에서 아래와 같이 실행합니다. (http://www.boost.org/)

  • C:...>bootstrap.bat mingw
  • C:/...> b2 toolset=gcc
  • boost root에는 boost라는 헤더 파일을 모아 놓은 폴더가 있습니다.  이넘을 MinGW/msys/1.0/include/boost 로 복사합니다.  복사하지 않고 쓸 수도 있지만, 저는 이것이 편했습니다.
  • boost root/stage/lib/*.a 파일을 MinGW/msys/1.0/lib 폴더 안에 복사합니다.



libtorrent 설치


libtorrent 파일을 다운받고 아래와 같이 실행합니다.  (https://github.com/arvidn/libtorrent/releases)

  • MinGW를 실행하시고, libtorrent root로 이동
  • $ ./bootstrap.sh
  • $ export CXXFLAGS="-D_WIN32_WINNT=0x0500 -D__USE_W32_SOCKETS -D_WIN32 -DBOOST_ASIO_SEPARATE_COMPILATION"
  • $ export LDFLAGS="-lws2_32 -lwsock32"
  • $ ./configure --enable-shared --disable-encryption --disable-geoip
  • $ make
  • $ make install

CXXFLAGS에서는 -D_WIN32_WINNT=0x0500 필요하고 나머지는 구글 검색에서 나오는 넘들을 하나씩 테스트 해봤으나, 소용 없었습니다.

LDFLAGS는 혹시나 해서 추가해봤습니다.  여전히 소용 없었습니다.


저는 OpenSSL이 필요 없어서 --disable-encryption 옵션을 사용했습니다.


--disable-geoip를 빼면, 해당 소스 파일에서 에러가 납니다.  맨위에 #define WIN32를 추가하면 빌드가 되지만, 제대로 동작하는 지는 모르겠습니다.



기타


위와 같이 하면 빌드는 무사히 되지만, 예제를 만들어서 빌드하면 윈속 라이브러리가 링크되지 않는 에러가 발생합니다.  이부분은 구글을 계속 검색하면서 추적해봤지만, 아직까지 해답을 모르겠습니다.  리눅스에서 사용하면 그냥 잘 됩니다.

'오픈소스 연구 > libtorrent' 카테고리의 다른 글

Building libtorrent with Visual Studio  (0) 2016.03.18

관련글 더보기