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