1

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

誰もこれに対する修正を知っていますか?

4

0 に答える 0