Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> struct DIR was not declared, Who? 
V
    Опции темы
andrew_121
Дата 9.8.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 3
Всего: 33



Здравствуйте!

Есть банальный кусок кода:
Код

#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>

#include <string>
#include <vector>

#include "fileinfo.h"
#include "filetools.h"
#include "scandir.h"

/**************************************************************************/

bool scandir(std::vector<FileInfo>* list, const std::string& path) {
    FileInfo fi;
    struct stat st;
    struct dirent *dir_info = NULL;
    DIR* dir = opendir(path.c_str());
    if ( !dir ) return false;
    
    list->clear();

    while ( (dir_info = readdir(dir)) != NULL ) {
        if ( dir_info->d_name[0] == '.' && !isalpha(dir_info->d_name[1]) ) continue;
        if ( extract_ext(dir_info->d_name) != ".torrent" ) continue;
        fi.name = path + "/" + std::string(dir_info->d_name);
        stat(fi.name.c_str(), &st);
        fi.type = ((st.st_mode & S_IFMT) == S_IFDIR) ? FileInfo::dir : FileInfo::file;
        /** add to the list */
        list->push_back(fi);
    }

    closedir(dir);

   return true;
}

/**************************************************************************/

Компилятор напрочь отказывается его компилировать.
Цитата

scandir.cpp: In function 'bool scandir(std::vector<FileInfo, std::allocator<FileInfo> >*, const std::string&)':
scandir.cpp:19: error: 'DIR' was not declared in this scope
scandir.cpp:19: error: 'dir' was not declared in this scope
scandir.cpp:19: error: 'opendir' was not declared in this scope
scandir.cpp:24: error: 'readdir' was not declared in this scope
scandir.cpp:25: error: invalid use of incomplete type 'struct dirent'
scandir.cpp:18: error: forward declaration of 'struct dirent'
scandir.cpp:25: error: invalid use of incomplete type 'struct dirent'
scandir.cpp:18: error: forward declaration of 'struct dirent'
scandir.cpp:26: error: invalid use of incomplete type 'struct dirent'
scandir.cpp:18: error: forward declaration of 'struct dirent'
scandir.cpp:27: error: invalid use of incomplete type 'struct dirent'
scandir.cpp:18: error: forward declaration of 'struct dirent'
scandir.cpp:34: error: 'closedir' was not declared in this scope

Я написал это:
Код


#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

int main() {
    DIR *dir = opendir(".");
    if ( dir ) {
    closedir(dir);
    }
    return 0;
}

Компилируется.
Что не так?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
kemiisto
Дата 9.8.2009, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



В качестве небольшой ремарки. Друг мой, можно Вас попросить вот после таких тем более не писать:
Цитата(andrew_121 @  4.8.2009,  20:12 Найти цитируемый пост)
Используя С++, ты царь и бог. Та все знаешь и понимаешь. Если не понимаешь, посмотрел исходники и понял.

А то как-то одно с другим не вяжется... smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
andrew_121
Дата 9.8.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 3
Всего: 33



kemiisto, "друг мой", пост выше внимательно почитай. Я бы не стал постить если бы все было так просто.
И второй пример посмотри.

А по теме что-то полезное можете сообщить? ...нет? ...досвиданЯ.
"друг мой" хе...


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
GrayCardinal
Дата 9.8.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



[cut]

Добавлено через 2 минуты и 14 секунд
andrew_121
Попробуй в начало воткнуть
Цитата

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>

Авось поможет... smile

Добавлено через 4 минуты и 32 секунды
Цитата

Что не так? 

В маленьком кусочке stdio.h включен smile

Это сообщение отредактировал(а) GrayCardinal - 9.8.2009, 15:58


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 9.8.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 3
Всего: 33



GrayCardinal, В первый добавил - так же.
Из второго удалил - так же.

какие-то хидеры перекрывают нужные. но как это исправить не понятно. пробовал в разных комбинациях.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
GrayCardinal
Дата 9.8.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



andrew_121
Закомменть поочереди инклюды с <vector> Выскочит проблемный smile

Это сообщение отредактировал(а) GrayCardinal - 9.8.2009, 16:39


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 9.8.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 3
Всего: 33



Победил я его.
Оставил только эти хидеры, и скомпилилось:
Код

#include <sys/stat.h>
#include <dirent.h>
#include "filetools.h"



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.1126 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.