Freigeben über


Linkertoolfehler LNK1237

Während der Codegenerierung führte der Compiler einen Verweis auf das Symbol "Symbol" ein, das in Modul "Modul" kompiliert mit /GL kompiliert wurde.

Hinweise

Während der Codegenerierung sollte der Compiler keine Symbole einführen, die später in kompilierte /GLDefinitionen aufgelöst werden. symbol ist ein Symbol, das eingeführt und später in eine mit der Verwendung /GLkompilierte Definition aufgelöst wurde.

Weitere Informationen finden Sie unter /GL (Wer le Program Optimization).

Um LNK1237 aufzulösen, verwenden Sie das Symbol nicht /GL , oder verwenden /INCLUDE Sie (Erzwingungssymbolverweise), um einen Verweis auf das Symbol zu erzwingen.

Beispiel

Im folgenden Beispiel werden LNK1237 generiert. Um diesen Fehler zu beheben, initialisieren Sie das Array LNK1237_a.cpp nicht, und fügen Sie es dem Linkbefehl hinzu /include:__chkstk .

Quelldatei LNK1237_a.cpp:

// LNK1237_a.cpp
int main() {
   char c[5000] = {0};
}

Quelldatei LNK1237_b.cpp:

// LNK1237_b.cpp
// compile with: /GS- /GL /c LNK1237_a.cpp
// processor: x86
// post-build command: (lib LNK1237_b.obj /LTCG & link LNK1237_a.obj LNK1237_b.lib /nodefaultlib /entry:main /LTCG)
extern "C" void _chkstk(size_t s) {}