Ошибка компиляции с 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.