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

ОС: 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;  
} 

1 ответ

У меня была такая же проблема... Попробуйте перейти PROJECT-> PROPERTIES -> Configuration Properties -> C/C++ -> Preprocessor, и в Preprecessor Definitions добавить AMD64. Меня устраивает. PS ставлю подчеркивание до и после AMD64.

Другие вопросы по тегам