Erro das ferramentas de vinculador LNK1237
durante a geração de código, o compilador introduziu a referência ao símbolo 'symbol' definido no módulo 'module' compilado com /GL
Comentários
Durante a geração de código, o compilador não deve introduzir símbolos resolvidos posteriormente para definições compiladas /GL
. symbol
é um símbolo que foi introduzido e resolvido posteriormente para uma definição compilada usando /GL
.
Para obter mais informações, confira /GL
(Otimização do Programa Inteiro).
Para resolver o erro LNK1237, não use /GL
para compilar o símbolo ou use /INCLUDE
(Forçar Referências de Símbolo) para forçar uma referência para o símbolo.
Exemplo
A amostra a seguir gera o erro LNK1237. Para resolver esse erro, não inicialize a matriz em LNK1237_a.cpp
e adicione /include:__chkstk
ao comando de vínculo.
Arquivo de origem LNK1237_a.cpp
:
// LNK1237_a.cpp
int main() {
char c[5000] = {0};
}
Arquivo de origem 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) {}