1

我需要使用 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

有谁知道解决这个问题?

4

0 回答 0