boost ファイルシステム ライブラリを使用して小さなプログラムを作成しました。現在、いくつかの奇妙なリンクエラーが発生しています。私はすでにライブラリの並べ替えを試み、ブースト バイナリ (Boost 1.51.0; MinGW 4.7.1 静的ライブラリ) と私の MinGW バージョン - 4.7.1 に使用されるコンパイラのバージョンを確認しました。
誰かがこれの原因が他に何であるか考えていますか?
前もって感謝します。
リンカーの出力は次のとおりです。
obj\Debug\main.o: 関数内 `ZN5boost10filesystem6existsERKNS0_4pathE': C:/boost_1_51_0/boost/filesystem/operations.hpp:289: `boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)' への未定義の参照'
obj\Debug\main.o: 関数内 `ZN5boost10filesystem4pathC1IA15_cEERKT_PNS_9enable_ifINS0_11path_traits11is_pathableINS_5decayIS4_E4typeEEEvE4typeE': C:/boost_1_51_0/boost/filesystem/path.hpp:139: `boost::filesystem::path::codecvt()' への未定義の参照 obj\Debug\main.o: 関数 `ZN5boost10filesystem11path_traits8dispatchISbIwSt11char_traitsIwESaIwEEEEvRKSsRT_RKSt7codecvtIwciE' 内: C:/boost_1_51_0/boost/filesystem/path_traits.hpp:174: `boost::filesystem::path_traits::convert(char const*, char const*, std::basic_string, std::allocator >&, への未定義参照std::codecvt const&)'
次のライブラリにリンクしました (Code::Blocks ビルド オプションで設定):
...\boost_1_51_0\stage\lib\libboost_system-mgw47-mt-d-1_51.a
...\boost_1_51_0\stage\lib\libboost_filesystem-mgw47-mt-d-1_51.a
ソースコード (興味深い部分、つまりブーストを使用している部分):
//...
#define BOOST_SYSTEM_NO_DEPRECATED
#define BOOST_FILESYSTEM_NO_DEPRECATED
#include <boost/filesystem.hpp>
//...
int main()
{
boost::filesystem::path p("./file.txt");
if(boost::filesystem::exists(p)) cout //...
}
//...