Как получить предварительно обработанную строку, которая вызывает внутреннюю ошибку компилятора?
Опции cl
/nologo /ML /Gt0 /QMOb2000 /W3 /GX /Od /Gf /X /I "D:\Xorgfr\include" /D "NDEBUG" /D "NOGDICAPMASKS" /D "NOWINMESSAGES" /D "NOWINSTYLES" /D "NOSYSMETRICS" /D "NOMENUS" /D "NOICONS" /D "NOSYSCOMMANDS" /D "NORASTEROPS" /D "NOSHOWWINDOW" /D "OEMRESOURCE" /D "NOATOM" /D "NOCLIPBOARD" /D "NOCOLOR" /D "NOCTLMGR" /D "NODRAWTEXT" /D "NOGDI" /D "NOKERNEL" /D "NONLS" /D "NOMB" /D "NOMEMMGR" /D "NOMETAFILE" /D "NOMINMAX" /D "NOMSG" /D "NOOPENFILE" /D "NOSCROLL" /D "NOSERVICE" /D "NOSOUND" /D "NOTEXTMETRIC" /D "NOWINOFFSETS" /D "NOWH" /D "NOCOMM" /D "NOKANJI" /D "NOHELP" /D "NOPROFILER" /D "NODEFERWINDOWPOS" /D "NOMCX" /D "Roster" /D WIN32_WINNT=0x4000 /Fo"MIPSRel/" /c
На самом деле я создаю ядро DLL.
D:\Xfr\main.C() : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file 'mio.cpp', line 49)
mio.cpp
Файл не существует в моей системе, поэтому я думаю, что это часть исходного кода cl.exe. В gcc есть опция, которая позволяет вам узнать, какая строка вашего кода вызвала ошибку компилятора.
Я пытался отключить скомпилированные заголовки; при всех оптимизациях цель меняется на R10000, но ошибка все равно добавляется в то же место.
И Microsoft точно не исправит ошибку. Я не смог найти другой компилятор, поддерживающий эту платформу.
Также мне действительно нужно использовать включаемые файлы, так как экспорт является структурой структуры структур.
static ALLOC_SECTION_LDATA KBDTABLES KbdTables = {
&CharModifiers,
aVkToWcharTable,
aDeadKey,
aKeyNames,
aKeyNamesExt,
aKeyNamesDead,
ausVK,
sizeof(ausVK) / sizeof(ausVK[0]),
aE0VscToVk,
aE1VscToVk,
MAKELONG(KLLF_LRM_RLM | KLLF_ALTGR, KBD_VERSION),
2,
sizeof(aLigature[0]),
(PLIGATURE1)aLigature
};
PKBDTABLES KbdLayerDescriptor(VOID) // this is the exported function, as you can see I definitely need it’s definition
return &KbdTables; // just return a pointer to the structure
}
1 ответ
Просто нашел ответ. Я думал, что mio.cpp может означать mips io и что это будет связано с записью файла.
Это так же просто, как установить часы до 1801 года.
Не знаю почему, но это определенно причина. Обойдемся без восстановления проблемы.
Кроме того, биос, кажется, не очень хорошо справляется после 2000 лет.