내 C++ 프로젝트에서 Qt (v4.7.4)와 부스트 (v1.47과 v1.48을 시도한)를 함께 사용하면 <boost\filesystem.hpp>
을 포함하는 클래스로 인해 링커 오류가 발생합니다 . 난 그냥 Qt는을 설정하고 코드 앞에 아무 문제없이 작동했다.Qt와 부스트를 사용할 때 링커 오류가 발생했습니다.
... OBJ : 오류 LNK2001 :
이
는 오류 메시지입니다 확인되지 않은 외부 기호 "개인 : 정적 클래스 표준 : : codecvt의 CONST * &이 향상 __cdecl :: filesystem3를 :: 경로 : wchar_t_codecvt_facet을 (void?) "(? wchar_t_codecvt_facet @ path @ filesystem3 @ boost CAFAPBV? $ codecvt @ GDH @ std @@ XZ)... obj : 오류 LNK2001 : 해결되지 않은 외부 기호"void __cdecl boost :: filesystem3 :: path_traits :: 변환 (숯불 CONST의 *, 숯불 CONST *, 클래스 표준 : : basic_string, 클래스 표준 : : 할당> &, 클래스 표준 : : codecvt의 CONST &) "(? @ p를 변환 ath_traits @ 파일 시스템 3 @ 부스트 @@ YAXPBD0AAV? $ basic_string @ GU? char_traits @ G @ std @@ V? $ 할당 자 @ G @ 2 @@ std @@ ABV? $ codecvt @ GDH @ 5 @@ Z)
... obj : 오류 LNK2001 : 확인되지 않은 외부 기호 "void __cdecl boost :: filesystem3 :: path_traits :: dispatch (class boost :: filesystem3 :: directory_entry const &, 클래스 std :: basic_string, 클래스 std :: allocator> & 클래스 표준 : : codecvt의 CONST &) "(? 파견 @ path_traits @ filesystem3를 GU? $ char_traits @ G @ 표준 @@ V @ 부스트 @@ YAXABVdirectory_entry @ 23 @ AAV? $ basic_string @? $ 2 @ @ G 할당 @@ std @@ ABV? $ codecvt @ GDH @ 6 @@ Z)
... obj : 오류 LNK2001 : 해결되지 않은 외부 기호 "void __cdecl boost :: filesystem3 :: path_traits :: convert (unsigned short const *, unsigned 짧은 죄수 st * :: class_string :: 클래스의 std :: allocator 클래스 &, 클래스 std :: codecvt const &) "? @ path_traits @ filesystem3 @ boost @@ YAXPBG0AAV? $ basic_string @ DU? $ char_traits @ D @ std @@ V $ @ 할당 D @ 2 @@ STD @@ ABV $ @ codecvt GDH 5 @@ Z)
... EXE @? 심각한 오류 LNK1120 4 개되지 않은 외부
편집 :
Here 내가 찾은 사람이 결론에 오는이 문제 갖는
,369을이 정말 Qt는 문제입니다. Qt는이 같은 컴파일러 스위치를 사용하여 컴파일하면 에있는 기본 유형으로 wchar_t를 사용. 일반적으로 https://bugreports.qt.io/browse/QTBUG-9617
당신은 매우 신중해야하고 그들이 호환 될 것 같은 프로젝트에서 컴파일러 설정 wchar_t를 함께 사용하지 마십시오 : 심지어 추적기에 버그가 있습니다.
그래서 Qt 설정을 /Zc:wchar_t
으로 다시 컴파일했지만 어떤 효과도 보이지 않았습니다. 나는 여전히 같은 오류가 발생합니다.
부스트를 컴파일하셨습니까? 나는 건물을 정확히 필요로하지만 도서관이하는 일에 너무 익숙하지 않습니다. – pezcode
예. 제대로 기억한다면'b2.exe'를 사용하여 Visual Studio 2010 용으로 컴파일했습니다. – Pedro
전체 부스트 라이브러리를 다시 컴파일해야 할 수도 있습니까? 나는 정확한 빌드 구성을 기억하지 못한다.하지만 boost 컴파일 할 때'build-in type' 속성으로'wchar_t 취급 '을 변경하지 않았다. – Pedro