C++ を使用してフォルダー内のファイルを反復処理する必要があり、そのために Boost ファイルシステム ライブラリを使用しています。
http://www.boost.org/doc/libs/1_54_0/libs/filesystem/doc/tutorial.htmlでチュートリアル コードを実行しようとしています。
ブーストをインストールした後、bootstrap.sh を実行してすべてのライブラリをビルドし、続いて ./b2 を実行すると、簡単なコードを実行できるようになりました。しかし、チュートリアルから次のコードをコンパイルしようとすると
#include <iostream>
#include <boost/filesystem.hpp>
using namespace boost::filesystem;
int main(int argc, char* argv[])
{
if(argc < 2)
{
std::cout << "Usage: a.out path\n";
return 1;
}
path my_path(argv[1]);
std::cout << argv[1] << " " << file_size(my_path) << '\n';
return 0;
}
使用して
g++ f1.cpp -lboost_filesystem -lboost_system
次のエラーが表示されます:-
/tmp/cc3IJurw.o: In function `boost::filesystem::file_size(boost::filesystem::path const&)':
f1.cpp:(.text._ZN5boost10filesystem9file_sizeERKNS0_4pathE[boost::filesystem::file_size(boost::filesystem::path const&)]+0x19): undefined reference to `boost::filesystem::detail::file_size(boost::filesystem::path const&, boost::system::error_code*)'
/tmp/cc3IJurw.o: In function `boost::filesystem::path::path<char*>(char* const&, boost::enable_if<boost::filesystem::path_traits::is_pathable<boost::decay<char*>::type>, void>::type*)':
f1.cpp:(.text._ZN5boost10filesystem4pathC2IPcEERKT_PNS_9enable_ifINS0_11path_traits11is_pathableINS_5decayIS4_E4typeEEEvE4typeE[_ZN5boost10filesystem4pathC5IPcEERKT_PNS_9enable_ifINS0_11path_traits11is_pathableINS_5decayIS4_E4typeEEEvE4typeE]+0x22): undefined reference to `boost::filesystem::path::codecvt()'
collect2: ld returned 1 exit status
誰もこれに対する修正を知っていますか?