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()'|

プロジェクトにCodeblocks IDEを使用してUbuntu 12.10を使用しています。

4

1 に答える 1

2

それはリンカーエラーです。Boost ファイルシステム ライブラリとリンクする必要があります。

IDE では、プロジェクト設定のどこかにライブラリを追加するための設定があるはずです。(Codeblocks を使用したことがないため、正確な場所はわかりません。)

于 2012-12-17T11:48:11.317 に答える