MFC에서 사용시 stl 링크 에러

OpenGL 한글 (입)출력 라이브러리 "glan"에 대한 포럼입니다.

Moderator: 류광

비회원

MFC에서 사용시 stl 링크 에러

Post by 비회원 »

MFC에서 사용하려니 아래와 같은 에러가 발생합니다.

glan 2.0.0 버전을 멀티쓰레드로 컴파일 했습니다.

하루 종일 이것때매 씨름하고 있어요. 어찌해야 할까요?

error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)이(가) glan2d.lib(glan_text.obj)에 이미 정의되어 있습니다.
전외솔
Posts: 518
Joined: 2002-07-03 01:24

Post by 전외솔 »

솔루션에 포함된 프로젝트들, 그리고 링크되는 라이브러리들의 런타임 라이브러리 설정이 다르기 때문입니다.
Multithreaded 와 Multithreaded DLL 이 섞여있지는 않는가 확인해 보세요.
(vc2003 이상에서 MFC라면 기본으로 Multithreaded DLL이 선택될겁니다. glan이 Multithreaded로 컴파일 되었다면
그 링크에러가 나는 것이 당연하겠죠.)
eoh
Posts: 135
Joined: 2001-07-20 09:00
Location: REAL:DREAM
Contact:

Post by eoh »

GLAN을 링크하실때에 표준 라이브러리 링크를 하지 말아보시기 바랍니다..

그래서 오류가 발생한다면, GLAN쪽에 필요한 라이브러리 링크를 하시고, 메인쪽에는 GLAN쪽에 포함시킨 라이브러리를 링크 시키지 말아보시기 바랍니다.. 여기서는 string관련 라이브러리겠네요.

또 다른 방법은, GLAN의 소스 자체를 메인 프로그램쪽의 소스의 일부로서 같이 컴파일 시켜 버리십시오.. 따로 lib 파일을 만드지 마시구요.

아마 이중에 한가지 방법은, 링크가 되지 않을까 싶네요.
Post Reply