在Ubuntu 12.04中使用Boost :: filesystem

时间:2013-11-09 19:33:19

标签: c++ ubuntu boost

我需要使用C ++迭代文件夹中的文件,我正在使用Boost文件系统库。

我正在尝试在http://www.boost.org/doc/libs/1_54_0/libs/filesystem/doc/tutorial.html

中运行教程代码

安装boost之后,运行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

有没有人知道对此的修复?

0 个答案:

没有答案