如何获取触发内部编译器错误的预处理行?

时间:2015-07-26 19:48:57

标签: visual-c++ dll mips windows-nt internal-compiler-error

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 个答案:

答案 0 :(得分:0)

刚刚找到答案。我认为mio.cpp可能意味着mips io并且它与写文件有关。

就像在1801之前设置时钟一样简单。

不知道为什么,但这绝对是原因。没有恢复问题 此外,这些bios似乎在2000年之后也不能很好地处理。