STLport의 사용이유 #

  • VC++ 6.0의 내장된 STL 구현이 비표준인것들이 많아 사용상 어려움
  • 부분적으로 내장된 STL보다 성능이 뛰어남
  • VC++ 7.0 이후 버전은 개인적으로 자체 STL사용 권장


STLport 초간단 설치 #

STLport의 설치방법중 커맨드명령(IDE 없이)을 통해 설치하는 방법을 이용한다.
(개인적으로 이방법이 가장 편하고 쉬움)

VC++ 6.0을 사용할때 서비스팩은 항상 설치 권장
  • sp5 or sp6


STLport 받기 #

아래의 사이트에서 Current release version파일을 받음
받은 압축된(gz이나 zip파일) 파일을 아무데나 풀기


컴파일하기 #

압축을 푼 디렉토리에서 src디렉토리로 이동하여 컴파일 한다.
nmake -f vc6.mak 

컴파일후 lib 디렉토리가 생성되며 lib디렉토리에는 컴파일된 결과물인 Object파일과 lib, dll 파일들이 생성된다.


설치하기 #

nmake -f vc6.mak install

VC++의 환경변수를 세팅 안했다면 아래와같은 메세지가 나올것이다
Microsoft (R) Program Maintenance Utility   Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

하위 디렉터리 또는 파일 ..\\lib이(가) 이미 있습니다.
하위 디렉터리 또는 파일 ..\\lib\\obj이(가) 이미 있습니다.
하위 디렉터리 또는 파일 ..\\lib\\obj\\VC6이(가) 이미 있습니다.
"Please set up MSVCDir environment variable. Did you run vcvars32.bat ?"
지정된 파일을 찾을 수 없습니다.
NMAKE : fatal error U1077: 'if' : return code '0x1'
Stop.

VC++의 환경변수를 세팅한다
vcvars32.bat

그리고 다시 install
nmake -f vc6.mak install
Setting environment for using Microsoft Visual C++ tools.
E:\Library\공개라이브러리\STLport-4.6\src>nmake -f vc6.mak install

Microsoft (R) Program Maintenance Utility   Version 6.00.9782.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

하위 디렉터리 또는 파일 ..\\lib이(가) 이미 있습니다.
하위 디렉터리 또는 파일 ..\\lib\\obj이(가) 이미 있습니다.
하위 디렉터리 또는 파일 ..\\lib\\obj\\VC6이(가) 이미 있습니다.
Copying STLport .lib files to VC lib directory : E:\PROGRA~1\MICROS~1\VC98\lib..
.
..\\lib\stlport_vc6.lib
..\\lib\stlport_vc6_static.lib
..\\lib\stlport_vc6_stldebug.lib
..\\lib\stlport_vc6_stldebug_static.lib
        4개 파일이 복사되었습니다.
Done copying .lib files.
Copying STLport DLLs to Windows system directory...
..\\lib\stlport_vc646.dll
..\\lib\stlport_vc6_stldebug46.dll
        2개 파일이 복사되었습니다.
STLport DLL libraries are installed on your system.
Copying STLport headers files to VC include directory : E:\PROGRA~1\MICROS~1\VC9
8\include\stlport...
414개 파일이 복사되었습니다.
Done copying STLport headers.
STLport installation complete.
Please find STLport headers in E:\PROGRA~1\MICROS~1\VC98\include\stlport.
Please find STLport .lib files in E:\PROGRA~1\MICROS~1\VC98\lib.
Please find STLport DLLs in Windows system directory.


설치내용 #

설치(install)의 경우 다음과 같은 내용이 실행된다.
  1. 윈도우의 System디렉토리에 다음 2개의 dll을 복사한다.
    • stlport_vc646.dll (릴리즈용)
    • stlport_vc6_stldebug46.dll (디버그용)

  2. VC 6.0 의 lib 디렉토리에 lib파일 4개를 복사한다.
    • stlport_vc6.lib (릴리즈용 DLL)
    • stlport_vc6_static.lib (릴리즈용 static)
    • stlport_vc6_stldebug.lib (디버그용 DLL)
    • stlport_vc6_stldebug_static.lib (디버그용 static)

  3. VC 6.0 include 디렉토리 밑에 stlport 디렉토리를 복사한다.


사용하기 #

VC++ 6.0 IDE의 include 경로를 잡아준다. (한번만 해주면됨)
  • Tools -> Options 메뉴에서 include 디렉토리를 VC++ 6.0의 include디렉토리 밑의 stlport디렉토리를 새로만들어 맨위로 올려준다
    • ex) E:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\INCLUDE\STLPORT

  • STLport를 사용하지 않을때는 stlport 디렉토리는 맨밑으로 내린다.

Use run-time library 를 지정한다.
  • 프로젝트마다 지정한다.
  • Project -> Settings -> C/C++ (탭) -> Category를 Code Generation -> Use run-time library:
  • 아래의 4개중 하나를 지정한다.
    • Multithreaded
    • Multithreaded DLL
    • Debug Multithreaded
    • Debug Multithreaded DLL

  • Single-Threaded 나 Debug Single-Threaded는 링크시 심볼 출동로 링크에러가 남.


배포하기 #

static (Multithreaded or Debug Multithreaded)으로 컴파일을 했을 경우는 코드가 포함되므로 따로 배포 할것이 없다 - 대신 실행파일(혹은 DLL)의 바이너리 크기가 커진다.

DLL 버전 (Multithreaded DLL or Debug Multithreaded DLL)으로 컴파일 했을경우 아래의 파일을 같이 배포해야한다.

(버전 4.6 기준)
Use run-time library 필요한 DLL
Multithreaded DLL stlport_vc646.dll
Debug Multithreaded DLL stlport_vc6_stldebug46.dll

'Dev > C++' 카테고리의 다른 글

C++에서 프로퍼티 구현하기  (0) 2008.05.01
boost::pool 예제  (0) 2008.05.01
Stroustrup - The real interview  (0) 2008.05.01
qsort vs sort  (0) 2008.05.01
최소 완전한 클래스를 만들어라  (0) 2008.05.01

+ Recent posts