STLport 5.21 VisualStudio2008 Vista에서 설정하기

STLport가 좋다는 말을 들어서 함 써볼려고 하는데 그냥 깔면 되는게 아니라 세팅해야 하는게 좀 되는군요. 안에 있던 설명서를 한번 따라해보고 여기 정리해 봅니다.

소스를 다운받습니다. 다운로드

다운 받아서 압축을 풉니다.
제가 설치 한 경로는 C:\Program Files\Microsoft Visual Studio 9.0\STLport-5.2.1 입니다.
시작->프로그램그룹->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 Command Prompt를 실행합니다.

configure msvc9 를 입력합니다. (Visual Studio 2005라면 configure msvc8입니다.)
화면 중간에 세팅 플랫폼이 Windows XP로 나오는데 Cofigure 파일속을 확인하니 XP이상 버전은 전부 동일한걸로 나옵니다. Windows 98이나 Windows95일 경우 변경하는것입니다.

더불어서 boost를 쓰신다면 msvc9 뒤에 -use-boost “boost경로” 를 덧붙입니다.

lib 폴더로 이동해서 nmake clean을 입력합니다.

컴파일 완료 모습입니다.

이제 Visual Studio 세팅을 하는데 lib 경로는 아래에 추가해도 상관없지만 include 경로는 맨위로 올려주지 않으면 Visual Studio 내장 STL를 사용하게 됩니다.

stlport.5.2.dll
stlportd.5.2.dll
stlportstld.5.2.dll
stlport.5.2.pdb
stlportd.5.2.pdb
stlportstld.5.2.pdb

경로) C:\Program Files\Microsoft Visual Studio 9.0\STLport-5.2.1\bin

위 6개 파일을 STLport를 사용할 프로젝트 실행폴더에 넣어줘야 합니다.

현재 프로젝트가 STLport를 제대로 사용하는지 확인할려면 위 dll를 다른곳에 옮겨놓고 실행해보면 아래와 같은 메세지가 뜹니다. 만약 안뜨면 Visual Studio 내장 STL을 사용중인거고요.

테스트용 소스

#include <iostream>

void main(){
	using namespace std;
	cout <<"Me llamo es LinSoo"<< endl;
}

사용시 필요한 추가 옵션(?)

//stlport/stl/config/user_config.h
#define _STLP_NO_IOSTREAMS 1				//iostream을 사용할 수 없는 임베디드 시스템일 경우
#define _STLP_USE_MFC 1						//MFC를 사용할 경우 주석해지 합니다.
#define _STLP_USING_PLATFORM_SDK_COMPILER 1	//Platform SDK에서 제공하는 컴파일러를 사용할 경우
#define _STLP_VERBOSE_AUTO_LINK 1			//자동 링크 기능을 사용할 때 어떤 lib를 링크하는지 보여줍니다.
#define _STLP_USE_TEMPLATE_EXPRESSION 1		//string의 + operator의 성능을 향상시키지만 댓가가 따릅니다.
#define _STLP_USE_BOOST_SUPPORT 1			//boost의 type_traits 라이브러리를 사용하도록 합니다.
//stlport/stl/config/hosts.h
#define _STLP_USE_DYNAMIC_LIB				//STLport의 동적(dynamic) 라이브러리를 사용한다.
#define _STLP_USE_STATIC_LIB				//STLport의 정적(static) 라이브러리를 사용한다.

//STLport 사용하면 메모리 릭경고가 뜨는데 이게 실제 릭이 아니라 버그라고 합니다.
//요게 찜찜하면 다음 항목을 사용하면 됩니다. 하지만 반드시 _STLP_USE_NEWALLOC 또는 _STLP_USE_MALLOC과 같이 사용해야 합니다.
#define _STLP_LEAKS_PEDANTIC 1	//메모리 할당할때 STLport에서 만든 할당자 말고 new를 사용하게 해준다고 합니다.
#define _STLP_USE_NEWALLOC 1	//메모리 할당할때 STLport에서 만든 할당자 말고 malloc를 사용하게 해준다고 합니다.
#define _STLP_USE_MALLOC 1

댓글 3개

댓글 달기

이메일 주소는 공개되지 않습니다.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.