私はこれに困惑しています。
Win7 x64 でコンパイルしようとしているクロスプラットフォーム コードがいくつかあります。コードは Boost 1.54.0、具体的には boost::filesystem ライブラリを使用しています。
filesystem::path に文字列を割り当てようとしたときのいくつかの関数呼び出しを除いて、私のコードの大部分はコンパイルされます。
たとえば、次のような単純なことをするとします。
string path = (char *)"/This/Is/A/Fake/Path";
filesystem::path boostpath = path;
リンク段階で次のようになります。
LNK2001: unresolved external symbol "void __cdecl boost::filesystem::path_traits::convert(unsigned short const *,unsigned short const *,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,class std::codecvt<unsigned short,char,int> const &)" (?convert@path_traits@filesystem@boost@@$$FYAXPEBG0AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV?$codecvt@GDH@5@@Z)
何が原因なのかわかりません。他のブースト ライブラリ (およびファイルシステム コール) は問題なく動作します。私が思いつく唯一のことは、Wide Characters と Windows で何かが起こっているということです。stackoverflow を検索しても、何も見つかりませんでした。リンク エラー自体は、文字列変換に関連しているようです。
当然、これは Linux/MacOSX で動作します。
前もって感謝します!
ボブ。