2014-02-13 6 views
0

ОС: Windows 8 64-битныхошибка компиляции с dirent.h на 64-битных окон

Компилятор: Visual Studio 2012

Описание проблемы: При попытке компиляции кода с "dirent.h" в «64 ", возникает ошибка. Независимо от того, используется dirent.h или нет. Ошибка не будет возникать, если коды были скомпилированы под настройкой «win32».

Ошибка MSG: C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Include \ ит \ WINNT.H (146): фатальная ошибка C1189: #error: "Нет Целевая архитектура"

Пример:

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

int main(int argc, char* argv[]) 
{ 

    const char *name = "."; 
    DIR *dirp; 
    struct dirent *dp; 

    dirp = opendir(name); 
    if (dirp != NULL) { 
     printf("opendir %s succeed!\n", name);  
    } 
    closedir(dirp); 
    return 0; 
} 
+0

Не относится к вопросу: «Отсутствует» в ваших включенных. – cup

+0

Получаете ли вы ту же ошибку в программе приветствия? Если это так, это не связано с dirent.h. Эквивалентом Windows является FindFirstFile, FindNext, FindClose согласно http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx – cup

ответ

0

у меня была такая же проблема ... Попробуйте зайти Проект-> Свойства -> Конфигурация -> Свойства C/C++ -> Preprocessor, и в Препроцессор Определения добавить AMD64. Меня устраивает. PS помещает знак подчеркивания до и после AMD64.