Я пытаюсь использовать итератор каталогов из библиотеки boost, и я хочу создать цикл, в котором я перебираю каталог и помещаю имена файлов в переменную, Я мог бы использовать функцию leaf() раньше, но теперь он устарел. Я не могу использовать path(). Filename() и даже могу использовать native() и string(), потому что компилятор C дает мне ошибки. Как я могу исправить этот код ниже?проблемы с листингом и получением имен файлов с помощью directory_iterator с библиотекой ускорения C++
boost::filesystem::directory_iterator end_iter;
for (boost::filesystem::directory_iterator file(dir);file != end_iter;++file)
{
/*check if file is image */
string fileName=file->path().filename().native(); //the error happens here
// i can use path().filename().string() either
boost::match_results<string::const_iterator> what;
if (0 == boost::regex_search(fileName, what, e, boost::match_default))
{
continue;
};
...
спасибо.
сообщение об ошибке из вашего компилятора может быть полезно – rectummelancolique
Спасибо за ответ. Ошибка:/usr/bin/ld: /tmp/cclbmY0q.o: undefined ссылка на символ '_ZN5boost6system15system_categoryEv' /usr/bin/ld: note: '_ZN5boost6system15system_categoryEv' определяется в DSO /usr/lib/libboost_system.so. 1.49.0, попробуйте добавить его в командную строку компоновщика /usr/lib/libboost_system.so.1.49.0: не удалось прочитать символы: недопустимая операция – mad
«Потому что компилятор ** C ** дает мне ошибки». Думаю, я нашел вашу проблему;) – Casey