0

ブースト ファイル システムを使用する必要がありますが、Windows (cl 2010 Express) ではリンカー エラーが発生します。私はQtクリエーターと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)

それと同じように、さらに2つ取得します。私はlibarchiveで同様の問題を抱えていますが、動的にリンクするとすべて問題ありません 正しくリンクするにはどうすればよいですか

4

1 に答える 1

0

Windows および msvc 2010 コンパイラの場合、define を追加する必要があります

DEFINES += BOOST_ALL_NO_LIB

その後、ブーストライブラリをリンクします

LIBS += -lyourboostlib
于 2012-07-30T14:34:01.060 に答える