本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[MSVC]デバッグ・ライブラリのリンク時に"_DEBUG"の定義が必要

文書番号: 401951

最終更新日: 2004/04/27


この資料は以下の製品について記述したものです。


概要

この資料はデバッグ・バージョンのライブラリをリンクする際に "_DEBUG" の定義を しなければならない事について説明したものです。

詳細

Microsoft Foundation Class ライブラリのデバッグ・バージョンを
アプリケーションにリンクするために、ソースコードのコンパイル時に
"_DEBUG" マクロを定義しなければなりません。
リンカのコマンドラインでも C/C++ のランタイム・ライブラリの名前
の前に 適切な Microsoft Foundation Class ライブラリの名前を記述
しなければなりません。
Microsoft Foundation Class ライブラリのデバッグ・バージョンでは
C/C++ のランタイム・ライブラリが標準的に供給している関数の追加
デバッグ情報を供給しています。("new"と"delete"のようなものです) デバッグ用ライブラリと "_DEBUG" マクロを定義せずにコンパイルされた コードのリンクの試みはおそらく失敗するでしょう。そしてリンカは以下
と同様なエラーを発生すると思われます。
   C:\...\MFC\lib\safxcwd.lib(memory.cpp) : error L2025: public:
      static void __near* __near __cdecl
      CObject::operator new(unsigned int) : シンボルが2回以上定義
      されています。
   C:\...\MFC\lib\safxcwd.lib(memory.cpp) : error L2025: public:
      static void __near __cdecl
      CObject::operator delete(void __near*) : シンボルが2回以上
      定義されています。
コマンドラインからコンパイルする際、"/D" コンパイラ・オブションを
使って "_DEBUG" マクロを記述します。例えば、C/C++ 7.0A もしくは
Visual C++ 1.0 または 1.5 ではコマンドラインは以下のようになります。
   cl /AS /D_DEBUG test.cpp safxcwd.lib
Programmer's Workbench(PWB) で Microsoft Foundation Classe
を使用してコンパイルする際は、"Use MFC Libraries"オプションを選択
してください。("Options"メニューから"Language Options"メニューを 選び、"C++ Compiler Options..."メニューを選びます。"Additional Global Options..."を選んで、"Use MFC Libraries"を選択した時点で"OK" を選びます。) PWB はアプリケーションのデバッグバージョンがコンパイル
される時に"/D_DEBUG"オプションを自動的に挿入します。
PWB は適切な Microsoft Foundation Classe ライブラリと適切な C/C++
ランタイム・ライブラリを正しい順序で記述したリンカのコマンドライン
をプロジェクト・ファイル (.MAK) 中に生成します。
Visual C++ 1.0 または 1.5 の Visual Workbench (VWB) で
Microsoft Foundation Class を使用してコンパイルする際は
"Microsoft Foundation Class を使用"オプションを選択します。
("オプション" メニューから "プロジェクト" メニューを選び、"Microsoft Foundation Class を使用"を選択して"OK"を選びます。) VWB はアプリ ケーションのデバッグバージョンがコンパイルされる時に "/D_DEBUG"
オプションを自動的に挿入します。 VWB は適切な Microsoft Foundation
Class ライブラリと適切な C/C++ランタイム・ライブラリを正しい順序
で記述したリンカのコマンドラインをプロジェクト・ファイル (.MAK) 中に
生成します。

Keywords: C7 KBINFO VC10 VC15 KB401951
Technology: kbAudDeveloper kbPWBSearch kbVCsearch kbZNotKeyword3 kbZNotKeyword8

inserted by FC2 system