ошибка компоновщика при использовании Qt и Boost

Когда я использую Qt (v4.7.4) и Boost (пробовал v1.47 и v1.48) вместе в моем проекте c++, я получаю ошибку компоновщика, вызванную классом, который включает . Я только что установил Qt и до этого код работал без проблем.

Это сообщение об ошибке:

...obj : error LNK2001: unresolved external symbol "private: static class std::codecvt const * & __cdecl boost::filesystem3::path::wchar_t_codecvt_facet(void)" (?wchar_t_codecvt_facet@path@filesystem3@boost@@CAAAPBV? $codecvt@GDH@std@@XZ)

...obj : error LNK2001: unresolved external symbol "void __cdecl boost::filesystem3::path_traits::convert(char const *,char const *,class std::basic_string,class std::allocator > &,class std::codecvt const &)" (?convert@path_traits@filesystem3@boost@@YAXPBD0AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@ABV?$codecvt@GDH@5@@Z)

... obj : error LNK2001: unresolved external symbol "void __cdecl boost::filesystem3::path_traits::dispatch(class boost::filesystem3::directory_entry const &,class std::basic_string,class std::allocator > &,class std::codecvt const &)" (?dispatch@path_traits@filesystem3@boost@@YAXABVdirectory_entry@23@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@ABV?$codecvt@GDH@6@@Z)

... obj : error LNK2001: unresolved external symbol "void __cdecl boost::filesystem3::path_traits::convert(unsigned short const *,unsigned short const *,class std::basic_string,class std::allocator > &,class std::codecvt const &)" (?convert@path_traits@filesystem3@boost@@YAXPBG0AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV?$codecvt@GDH@5@@Z)

. .exe : fatal error LNK1120: 4 unresolved externals

EDIT:

Здесь я нашел человека с такой проблемой, который пришел к такому выводу:

это действительно проблема Qt. Используя wchar_t в качестве родного типа, вы должны перекомпилировать Qt, используя тот же переключатель компилятора. Есть даже ошибка в трекере: https://bugreports.qt.io/browse/QTBUG-9617

В общем, вы должны быть очень осторожны и не смешивать wchar_t настройки компилятора в ваших проектах, так как они станут несовместимыми.

Поэтому я перекомпилировал Qt, установив /Zc:wchar_t, но это не дало никакого эффекта. Я по-прежнему получаю ту же ошибку.

7
задан MBach 8 January 2017 в 15:58
поделиться