1 INSTALL file for STLport 4.5 #
(STLPort는 거의 현존하는 모든 운영체계와 컴파일러에서 작동하는 라이브러리입니다. 고로 아래 글은 Win32 프로그래밍하시는 분에게는 해당되지 않는 내용이 있을 수 있습니다.)
STLport-4.5은 ANSI C++ 표준을 완벽히 지원하는 라이브러리이다.
이 배보폰은 STLPort 소스들만 담고있다 (바이너리화일은 없다) STLPort iostream을 사용하고 싶다면, src 디렉토리에 있는 소스들로부터 STLPort 라이브러리를 빌드하고, 여러분의 프로그램을 이 것과 링크해야만 한다.
이것은 pre-4.0 릴리즈 이후로 주요 변경된 점이다. 아래 단계를 주의깊게 읽기 바란다.
1.1 STLPort의 설치 #
- 컴파일 시 억세스가능한 디렉토리로 STLPort를 압축해제한다. 주의 : 설령 백업을 해놓았다 하더라도 절대로 컴파일러와 같이 딸려오는 헤더화일에 덮어쓰지 말아라! - 이렇게 하면 절대로 동작하지 않는다!
- stlport 디렉토리를 컴파일러의 검색 경로중 하나로 설정한다. (역주 : 일반적으로 include에 해당하는 디렉토리 path 옵션이 있다. ^^)
- stlport 디렉토리 이름을 변경하지 말아라. 컴파일 에러가 발생할 수 있다.
주의 : configure를 실행하려고 하지 말아라!
(변역이 귀찮아서 아래 원문을 남겨둡니다. VC를 쓰는데에는 관련없습니다.)
- src 디렉토리를 열어본다. 다양한 컴파일러들을 위한 makefile들이 담겨져있다. 만일 여러분이 사용하는 '특별한' 컴파일러를 위한 makefile을 찾을 수 없다면, 여러분이 사용하는 것과 가장 유사한 make 엔진을 찾아서 그것을 사용하라. 커맨드 라인 컴파일이 가능한지 확인한다. VC에서는 add environment variables를 해주어야하고, 그외는 알아서 설치하도록...^^ (귀찮아서 생략)
- stlport/stl_user_config.h 화일에서 _STLP_NO_OWN_IOSTREAMS이 주석처리되어있을텐데 이것을 해제해라. 이 설정이후에는 STLPort iostream을 사용하지 않는다는 뜻이되며, 여러분의 존재하는 iostream를 인용하는 wrapper 선언들을 사용할 것이다. 이 경우에는 STLPort의 바이너리 라이브러리는 필요하지 않다.
- 부가적인 참조사항 :
- 새로운 스타일의 ANSI iostream은 여러분의 시스템에서 허용되지 않을수도 있다.
- 컴파일러 자체의 iostream은 STLPort 버젼보다 대부분 느리다.
- 부가적인 참조사항 :
NOTE : Do NOT attempt to run "configure" ! It is deprecated, moved to safe standalone folder
and should be used as a helper to create initial config for a new compiler only.
Your compiler should be recognized by STLport source code with no configuring.
Please edit appropriate configuration header for your compiler
directly if you have to make compiler-specific configuration changes.
2.1 패스 패치 #
아무 폴더에서 nmake를 해 보시고 안돼면 MSVC 6.0에서 VCVARS32.bat를 한번 실행 시켜주어야 됩니다.
그러면 밑에 나오는 nmake가 패스 패치돼어서 어떤 폴더에서든 실행 시킬수 있습니다. -by 이 글보고 따라한 우지사내가
그러면 밑에 나오는 nmake가 패스 패치돼어서 어떤 폴더에서든 실행 시킬수 있습니다. -by 이 글보고 따라한 우지사내가
2.2 다운로드 및 압축해제 #
이곳에서 다운로드를 받은 후, 우선 아무 디렉토리에 압축을 풉니다. 나중에 명령 프롬프트에서 찾아가기 어려우니깐 저는 그냥 C: 루트에 풀었습니다.
2.3 컴파일 및 설치 #
C:\Stlport-4.5.3에 압축을 풀었다고 가정하면 다음과 같이 실행합니다. (nmake입니다. 주의!)
C:\Stlport-4.5.3> cd src C:\Stlport-4.5.3\src> copy vc6.mak makefile C:\Stlport-4.5.3\src> nmake clean all
중간에 warning이 간혹 뜨는데 모두 무시하시길...
끝나면, 다음과 같이 한번더 실행합니다.
끝나면, 다음과 같이 한번더 실행합니다.
C:\Stlport-4.5.3\src> nmake install
이제 VC디렉토리에 잘 설치가 되어 있을겁니다. 디렉토리로 가서 확인해봅니다.
2.5 테스트 #
다음과 같이 실행합니다.
C:\Stlport-4.5.3> cd test\eh C:\Stlport-4.5.3\test\eh> copy vc6.mak makefile C:\Stlport-4.5.3\test\eh> nmake
eh done 이라는 메세지가 뜨면 테스트 완료입니다.
2.6 추가 수정사항 #
- 아마도 MS홈페이지에서 새로운 플렛폼 SDK를 설치해서 쓰시는 분들은 Interlocked... 관련 함수들에 대한 에러가 발생할 겁니다. stlport디렉토리에서 stl_user_config.h화일중 다음부분을 주석해제 하시기 바랍니다.
// boris : this setting is here as we cannot detect precense of new Platform SDK automatically // If you are using new PSDK with VC++ 6.0 or lower, please define this to get correct prototypes for InterlockedXXX functions // # define _STLP_NEW_PLATFORM_SDK 1
이것을,// boris : this setting is here as we cannot detect precense of new Platform SDK automatically // If you are using new PSDK with VC++ 6.0 or lower, please define this to get correct prototypes for InterlockedXXX functions # define _STLP_NEW_PLATFORM_SDK 1
이렇게 하시면 됩니다. 주의 : 이렇게 고치는 것은 플렛폼 SDK업그레이드를 하신 분에게만 해당되는 것입니다. 그렇지 않은 분은 주석을 풀면 에러가 나게 됩니다.
2.7 참고사항 #
- 컴파일 하시면 엄청난 양의 디버그용 warning 메세지를 쏟아냅니다. 이게 STL에 잘못이 있는게 아니라 템플릿 라이브러리에 대한 처리를 잘못 설정한 것 때문이라고 하네요. 작성하는 소스코드에 다음과 같이 설정하면 깔끔하게 해결됩니다.
#pragma warning ( disable : 4786)
- STLPort의 단점이라고도 할수 있는데... VC를 쓴다면 Project->Settings->C/C++->Code Generation->Use Runtime Library를 MultiThreaded/MultiThreaded DLL로 설정해야합니다. (싱글 쓰레드로 놓으니 에러나는 군요. -_-a)
- 어느정도 사용해보니 VC++에서 사용할 경우에는 iostream을 VC++용으로 사용하는 것이 더 편하다는 것을 느꼈습니다. (에러가 있을 줄 알았는데, platform SDK 업글하면 괜찮습니다.) STLPort용 iostream을 사용하면 항상 결과물에 sgi iostream 호환용 dll이 따라다녀야하기 때문에 번거롭기도 하죠. 그냥 stlport만을 사용하고, sgi 호환 iostream을 사용하지 않으려면 stl_user_config.h 화일에서 다음 부분을 주석해제하면 됩니다.
#define _STLP_NO_OWN_IOSTREAMS 1 #define _STLP_NO_NEW_IOSTREAMS 1
좋은 글 감사합니다.
"에러나 기타등등 모두 무시하시길...^^ 끝나면, 다음과 같이 한번더 실행합니다. "
라는 부분이 무슨 말인가요 전 NMAKE : fatal error U1077: 'cl.exe' : return code '0x2'
라는 에러가 뜨는데 혹시,,,, 답을 알고 계시면 알려주세요 미리 감사^^ - 210.97.254.10
제 인스톨은 vc6에서만 돌려보았습니다. vc.net 2003에서는 어떤지 모르겠지만 잘되는걸로 알고 있습니다. 에러는 아니고 warning인데... 글이 좀 헛갈릴 염려가 있으니 고쳐놓겠습니다. - redpixel
저도 마지막 테스트부분에서 fatal error U1077: 'cl.exe' : return code '0x2' 뜨네요... 무슨 문제일까요.. VC 6이고요... -- 허걱 2004-11-17
vc6에서의 테스트는 제가 할수가 없는 상황이라서... on_ -- redpixel 2004-11-17








