0

我需要使用 boost 文件系统,但在 windows(cl 2010 express) 下我有一些链接器错误。我使用 Qt creator 和 qmake 并且不明确链接。我唯一的想法是提供包含和 lib 路径

win32 {

    BOOSTHOME = C:/boost

    INCLUDEPATH += $$BOOSTHOME\\boost_1_47

    LIBS += -L$$BOOSTHOME\\boost_1_47\\lib
}

当我尝试构建时,出现此错误:

main.obj:-1: error: LNK2019: unresolved external symbol "private: static class std::codecvt<unsigned short,char,int> const * & __cdecl boost::filesystem3::path::wchar_t_codecvt_facet(void)" (?wchar_t_codecvt_facet@path@filesystem3@boost@@CAAAPBV?$codecvt@GDH@std@@XZ) referenced in function "public: static class std::codecvt<unsigned short,char,int> const & __cdecl boost::filesystem3::path::codecvt(void)" (?codecvt@path@filesystem3@boost@@SAABV?$codecvt@GDH@std@@XZ)

我还有两个,类似的。我与 libarchive 有类似的问题,但是当我动态链接时一切都很好我必须做什么才能正确链接

4

1 回答 1

0

对于 windows 和 msvc 2010 编译器必须添加定义

DEFINES += BOOST_ALL_NO_LIB

然后将您的boost lib与

LIBS += -lyourboostlib
于 2012-07-30T14:34:01.060 回答