Ошибка средств компоновщика LNK1237
во время создания кода компилятор представил ссылку на символ "символ", определенный в модуле "module", скомпилированный с /GL
Замечания
Во время создания кода компилятор не должен вводить символы, которые позже разрешаются в определения, скомпилированные /GL
. symbol
— это символ, который был введен и позже разрешен в определение, скомпилированное с помощью /GL
.
Дополнительные сведения см. в разделе /GL
(Оптимизация всей программы).
Чтобы разрешить LNK1237, не используйте /GL
для компиляции символа или используйте /INCLUDE
(принудительное использование ссылок на символы) для принудительной ссылки на символ.
Пример
Следующий пример создает LNK1237. Чтобы устранить эту ошибку, не инициализировать массив LNK1237_a.cpp
и добавить /include:__chkstk
в команду ссылки.
Исходный файл LNK1237_a.cpp
:
// LNK1237_a.cpp
int main() {
char c[5000] = {0};
}
Исходный файл 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) {}