Я пытаюсь перебрать каталог и распечатать имя всех файлов, начиная с корня.
Вот короткий фрагмент, который я написал, используя 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 использую IDE Codeblocks для моего проекта.
Это ошибка компоновщика. Вам нужно связаться с библиотекой файловой системы Boost.
В IDE должна быть настройка для добавления библиотек где-то в настройках проекта. (Я не знаю точно, где, так как я никогда не использовал кодовые блоки.)
Других решений пока нет …