次の方法で共有


リンカー ツール エラー LNK1237

コード生成中に、コンパイラが /GL でコンパイルされたモジュール 'module' で定義されたシンボル 'symbol' への参照を導入しました

解説

コードの生成中、コンパイラは、後で /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) {}