Erreur des outils Éditeur de liens LNK1237
lors de la génération de code, le compilateur a introduit la référence au symbole 'symbol' défini dans le module 'module' compilé avec /GL
Notes
Pendant la génération de code, le compilateur ne doit pas introduire de symboles qui sont ultérieurement résolus en définitions compilées /GL
. symbol
est un symbole qui a été introduit et ultérieurement résolu en une définition compilée à l’aide /GL
de .
Pour plus d’informations, consultez /GL
(Optimisation complète du programme).
Pour résoudre LNK1237, n’utilisez /GL
pas pour compiler le symbole ou utilisez /INCLUDE
(Forcer les références de symboles) pour forcer une référence au symbole.
Exemple
L’exemple suivant génère des LNK1237. Pour résoudre cette erreur, n’initialisez pas le tableau et LNK1237_a.cpp
ajoutez-y /include:__chkstk
la commande link.
Fichier source LNK1237_a.cpp
:
// LNK1237_a.cpp
int main() {
char c[5000] = {0};
}
Fichier source 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) {}