2

静的ライブラリ入力 (.lib) を持つプロジェクトをビルドすると、このエラーが発生します。問題は、プロジェクトをデバッグで正常に実行できるが、リリース モードで実行できないことです。エラーが ... として表示されます。

nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc

この問題を解決するのを手伝ってください。

4

1 に答える 1

1

Microsoft の KB Q166504に答えがあるかもしれません。

MFC アプリケーションまたは DLL をビルドするときは、関連するすべてのライブラリが同期していることを確認する必要があります。

  • 共有ライブラリで MFC を使用してアプリケーションをビルドすることを選択した場合は、動的バージョンの C ランタイム (MSVCRT.DLL) も使用する必要があります。
  • デバッグ MFC アプリケーションをビルドすることを選択した場合は、C ランタイムのデバッグ バージョンも使用する必要があります。同様に、リリース MFC アプリケーションは、C ランタイムの非デバッグ バージョンを使用する必要があります。
  • デバッグ MFC アプリケーションが拡張 DLL を使用する場合、すべての拡張 DLL もデバッグ ビルドである必要があります。繰り返しますが、リリース アプリはリリース拡張 DLL と一致する必要があります。C ランタイム ライブラリのタイプは固定されています。拡張 DLL およびそれらを使用するアプリケーションはすべて、共有ライブラリで MFC を使用する必要があります。これには、C ランタイムの動的 DLL バージョンが必要です。
  • MFC または CRT にもリンクしている静的ライブラリにリンクしている場合は、すべての静的ライブラリがアプリケーションと同じプロパティ (デバッグ/リリース、CRT-静的/動的) を共有していることを確認する必要があります。

解像度

アプリケーションまたは DLL で使用される C ランタイム ライブラリのタイプを変更するには、[ビルド/プロジェクト設定] プロパティ シートに移動し、[C/C++] タブに切り替えます。C/C++ ページで、「コード生成」カテゴリを選択します。[ランタイム ライブラリを使用] リスト ボックスの値を変更します。これを構成ごとに特定するように注意してください。この値を変更するときは、「Win32 (80x86) デバッグ」などの 1 つの構成のみを選択する必要があります。

  • 共有ライブラリ MFC アプリケーションのデバッグ - 「マルチスレッド DLL のデバッグ」。

  • リリース、共有ライブラリ MFC アプリケーション - 「マルチスレッド DLL」。

  • スタティック ライブラリ MFC アプリケーションのデバッグ - 「マルチスレッドのデバッグ」。

  • リリース、静的ライブラリ MFC アプリケーション - 「マルチスレッド」。

于 2012-04-18T05:57:58.980 に答える