Native/C++

STLport

aucd29 2013. 10. 2. 19:04

< about >

작년 12월 6일 STLport Ver. 5.1.0 이 Release 되면서
설치방법이 조금 변경 되었다.
새로운 설치방법을 포스팅한다고 글을 적은게 1달 전이었는데
이제서야 실행하게 되었다.
설마 이 글을 기다린 사람은 없겠지만,
만약 있다면 죄송스럽게 생각하면서 글을 시작하려고 한다.

또한, 이 글을 읽는 모든 분들께 다시 한 번 당부한다.
퍼가는 것은 자유지만 출처는 분명히 해줬으면 좋겠다.


< intro >

먼 옛날 STL은 한낱 문서상의 표준이었고,
내가 C++에 입문하던 때만 해도 STL은 아는 사람들 끼리의 물건이었다.
그러나 지금은 STL을 모르고 C++을 한다고 말할 수 없게 되었다.
그리고 STLport는 현존하는 STL 라이브리 중 가장 사랑받는 놈이다.

물론 VC++에도 내장 STL이 존재한다.
그래나 현재는 인식이 많이 바뀌었다 해도 많은 사람들이 내장 STL의 사용을 만류하고 있다.
그리고 본인도 그 생각에 동감하는 바이다.
개인적인 이유는 다음과 같다.
MSVC 내장 STL은
딩컴웨어에서 판매하는 상용 라이브러리인데,
VC 구매시에는 이미 이 라이브러리의 버전은 구버전이 되어버린다.
그리고 그에 대한 업그레이드에는 추가 비용이 들게 된다.
그에 비하면 STLport는 무료로 지속적인 업데이트를 해 나가고 있다.

현재 배포되는 STL 라이브러리들에 대한 이야기를 보려면
'Effective STL'의 50장과 부록B를 보기 바란다.


< download >

STLport는
http://sourceforge.net/projects/stlport 에서 받는다.
www.STLPort.org 라는 공식 홈페이지가 있으나
현재 업데이트가 중지된 상태이며
최신 버전은
sourceforge 에서 관리된다.
이 글이 작성되는 시점에서 배포되는 최신 버전은 5.1.0 Release 이다.


< uncompress >

STLport-5.1.0.zip 파일을 받아 압축을 풀자.
본인은 라이브러리들의 관리를 편하게 하기 위하여
VC 관련 라이브러리는 모두 F:\MSVC\Library\ 경로에 모아 놓는다.

압축이 해제되면 STLport-5.1.0 폴더가 생성된다.



< before compile >

컴파일에 앞서 옵션을 설정해 주어야 한다.
옵션 파일의 위치와 이름이
\STLport-5.0.1\stlport\stl_user_config.h 에서
\STLport-5.1.0\stlport\stl\config\user_config.h 로 바뀌었다.
해당 파일을 열어 보자.

먼저 Platform SDK를 사용한다면, 다음의 주석을 제거한다.

#define _STLP_NEW_PLATFORM_SDK 1

또한 다음의 선언문의 주석도 해제하자.

#define _STLP_VERBOSE_AUTO_LINK 1

이 선언은 컴파일 결과 자체에는 영향이 없지만
컴파일 중 현재 링크되고 있는 라이브러리를 빌드 창에 표시 하겠음을 나타낸다.
따라서 프로그램이 STLPort 라이브러리를 연결하고 있는지
컴파일 중 확인할 수 있다.


< compile >

컴파일을 위해서는 반드시 콘솔에서 작업해야 한다.
그러므로 아래의 설명은
전부 콘솔에서 이루어 진다는 것을 명심하자.

먼저 콘솔 창을 연다.
모르겠으면 'Windows Key' + R 하면 나타나는 창에 cmd 라고 적는다.

만약 VC++.NET 2003을 깔았다면
아래와 같은 패스가 있을 것이다.

C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin

위 폴더에 vcvars32.bat 파일이 있다.
이 파일을 콘솔에서 실행시킨다.
그러면 환경이 준비 됐다는 의미 비슷한 말이 나온다.
(영어라 장담 못하겠다. -_-a)

이제 커맨드 창에서 F:\MSVC\Library\STLport-5.1.0\build\lib 폴더로 들어간다.
다음과 같이 입력한다.

configure -c msvc71



이제 STLport는 VC++ .NET 2003 컴파일러를 사용하게 된다.
마지막으로 인스톨 명령을 친다.
이제 컴파일 끝날 때까지 기다리도록 하자.

nmake /fmsvc.mak install


<주의>
현재 STLport 의 README 문서들이 상태가 좀 메롱 하다.
분명 STLport 5.1.0 RC3 에서 배포된 README 문서는
변경된 컴파일 방법에 대해 친절하고 정확하게 설명되어 있었는데,
이번 Release의 README 문서는 이전 버전을 그대로 복사한 것 같다.
아마 전에 RC3를 컴파일 해본 경험이 없었다면 상당히 삽질을 했을 것이다.

컴파일 방법은 \STLport-5.1.0\doc\README.msvc 를 참고하고
컴파일 옵션은 \STLport-5.1.0\build\lib\configure.bat 를 참고하기 바란다.

컴파일이 완료되면 아래와 같이 새로운 두 개의 폴더가 생긴다.
이 중 \STLport-5.1.0\bin\ 폴더에 생긴 세 개의 *.dll 파일을 system32 폴더에 복사한다.



< after compile >

컴파일이 다 끝나면,
VC++.NET 2003에서 경로 지정을 해줘야 한다.
VC++.NET 2003을 열고 도구에 가서 옵션을 선택하면 창이 열린다.
그럼 좌측 목록에 Projects 를 선택하고
하위의 VC++ 폴더를 선택한다.
우측 창의 우측 상단 콤보박스에서 포함 파일을 선택한 후
리스트에 D:\Library\STLport-5.0.1\stlport 를 추가로 적어
리스트 맨 위에 놓는다.




< finale >

이제 마음놓고 사용하시라~!!
(@,.@)>


http://www.junhworks.net/blog/85