2015-01-22 2 views
0

Я пытаюсь прочитать все .txt файлы в заданную папку, и я пытаюсь использовать Повысьте эффективность библиотеки для что:Ошибка с использованием файловой системы наддува ::

int FileLoad::ReadTxtFiles(const std::string folder){ 
    int loadStatus = LOAD_OK; 

    // Check if given folder exists 
    if(boost::filesystem::is_directory(folder)){ 
     // Iterate existing text files 
     boost::filesystem::directory_iterator end_iter; 
     for(boost::filesystem::directory_iterator dir_itr(folder); 
      dir_itr!=end_iter; dir_itr++){ 

      boost::filesystem::path filePath; 
      try{ 
       // Check if it is a file 
       if(boost::filesystem::is_regular_file(dir_itr->status())){ 
        filePath = dir_itr->path(); 
        // Check that it is .txt extension 
        std::string fileExtension = 
         dir_itr->path().extension().string(); // Case insensitive comparison 
        if(boost::iequals(fileExtension, ".txt")){ 
         // Filename is the code used as id when the file text is loaded to a database 
         std::string fileName = dir_itr->path().stem().string(); 
         std::istringstream is(fileName); 
         unsigned int entryId; 
         is >> entryId; 
         // Check if an entry with that code id currently exists 
         // at the database 
         if(!DATABASE::CheckIfEntryExists(entryId)){ 
          // Process text file 
          loadStatus = ProcessFile(filePath.string()); 
         } 
        } 
       } 
      } 
      catch(const std::exception& ex){ 
       std::cerr << " [FILE] Error trying to open file " << 
        filePath.string() << std::endl; 
      } 
     } 
    } 

    return loadStatus; 
} 

Но я reeiving две ошибки компилятора:

undefined reference to `boost::filesystem3::path::extension() const' 
undefined reference to `boost::filesystem3::path::stem() const' 

у меня есть следующий импорт в файл заголовок класса:

#include "boost/algorithm/string.hpp" 
#include "boost/filesystem/operations.hpp" 
#include "boost/filesystem/path.hpp" 

(Среди других, которые не имеют отношения, s uch as)

Что я делаю неправильно?

ответ

2

Вы должны связать с -lboost_filesystem -lboost_system, чтобы решить эти ошибок компоновщика

подталкивания файловой системы зависит от других скомпилированного компонента доступна в этих библиотеках

2

Тех ошибки компоновщика, не компилятор ошибок. Пожалуйста, связывайтесь с библиотекой файловой системы boost и с системной библиотекой, от нее зависит файловая система b/c.

Смежные вопросы