0

我正在尝试遍历目录并打印从根目录开始的所有文件的名称。

这是我在程序中使用Boost::Filesystem(1.52.0) 编写的简短片段。

void testApp::getNames(const string& dirPath, string& fileExtension)
{
    namespace fs = boost::filesystem;
    namespace sys = boost::system;
    fs::path filePath(dirPath);
    for(fs::recursive_directory_iterator dir(filePath), dir_end; dir!=dir_end ;++dir)
    {
        cout<<*dir;
    }
}

在尝试编译这个时,奇怪的是我得到了构建错误,它指向path.hpp以下代码段中的文件:

    static const codecvt_type& codecvt()
    {
      return *wchar_t_codecvt_facet();
    }

我得到的错误是undefined reference to boost::filesystem3::path::wchar_t_codecvt_facet()'|

我在 Ubuntu 12.10 上为我的项目使用 Codeblocks IDE。

4

1 回答 1

2

那是一个链接器错误。您需要链接 Boost 文件系统库。

在 IDE 中,项目设置中的某处应该有一个用于添加库的设置。(我不知道具体在哪里,因为我从未使用过代码块。)

于 2012-12-17T11:48:11.317 回答