OpenGL 한글 (입)출력 라이브러리 "glan"에 대한 포럼입니다.
Moderator: 류광
비회원
Post
by 비회원 » 2006-05-02 17:20
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 전외솔 » 2006-05-02 21:02
솔루션에 포함된 프로젝트들, 그리고 링크되는 라이브러리들의 런타임 라이브러리 설정이 다르기 때문입니다.
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 » 2006-05-28 17:59
GLAN을 링크하실때에 표준 라이브러리 링크를 하지 말아보시기 바랍니다..
그래서 오류가 발생한다면, GLAN쪽에 필요한 라이브러리 링크를 하시고, 메인쪽에는 GLAN쪽에 포함시킨 라이브러리를 링크 시키지 말아보시기 바랍니다.. 여기서는 string관련 라이브러리겠네요.
또 다른 방법은, GLAN의 소스 자체를 메인 프로그램쪽의 소스의 일부로서 같이 컴파일 시켜 버리십시오.. 따로 lib 파일을 만드지 마시구요.
아마 이중에 한가지 방법은, 링크가 되지 않을까 싶네요.