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

0

ОС: Windows 8 64-бит

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

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

Ошибка MSG: C:\Program Files (x86)\Windows Kits\8.0\Include\um\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
    Не имеет отношения к задаваемому вопросу: вы пропускаете <> в своих списках.
  • 0
    Вы получаете ту же ошибку в программе Hello World? Если так, это не имеет ничего общего с dirent.h. Эквивалентом Windows является FindFirstFile, FindNext, FindClose согласно msdn.microsoft.com/en-us/library/windows/desktop/…
Теги:
dirent.h

1 ответ

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню