• ベストアンサー

スタティックライブラリファイル作成時のデバッグセッションの実行可能ファイル

VisualC++2008ExpressEditionを使用しています。 スタティックライブラリファイルを作成しようとしているのですが、コンパイルしようとすると、「デバッグセッションの実行可能ファイル」というタイトルのウィンドウが現れ、「デバッグで使用する実行可能ファイル名を指定して下さい。」と出てきます。 libファイルはdllと違いコンパイル時に読み込まれてしまうため、テストしたかったら、EXEファイルをコンパイルして作り直さないといけないと思うのですが、ここでいうデバッグで使用する実行可能ファイルとは、どの様なファイルを指しているのでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

ライブラリのプロジェクトがあるソリューションにテスト用のプロジェクトも作ります。 テスト用のプロジェクトをライブラリに依存させます。

glarelance
質問者

お礼

ライブラリのプロジェクトにテスト用のプログラムを作成して、ソリューションエクスプローラから、テスト用プログラムのプロジェクト右クリックして、プロジェクト依存関係で、libのプロジェクトを依存先に設定したら、テスト用のプログラムをコンパイルすると、libファイルも一緒に再コンパイルされるようになりました。 ただ、F5キーを押しても、ライブラリのプロジェクトが優先されてるようでライブラリのみがコンパイルされるようです。 実際、ライブラリのプロジェクトの文字が太文字になっています。 これを、テストプログラムの方に変えるにはどの様にすればいいのでしょうか?

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

先に投稿した画像に「スタートアッププロジェクト」というのがありますよね。 これで実行するプロジェクトを選びます。 ソリューションエクスプローラのところでプロジェクト名を右クリックでも選択できます。

glarelance
質問者

お礼

出来ました(≧∀≦) どうもありがとうございました。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

そのText.EXEをどのようにして作成したのでしょう? > test.exe'のデバッグ情報が見つからないか、または一致しません。シンボルが読み込まれていません と出るとすると デバッグモードで生成していないのではないかと思われます Win32APPなどの雛形(テンプレート)を使って作成したものですか? CPPのプリプロセッサ定義の _DEBUGを書き換えたりしていませんか ReleaseモードでEXEを作った場合にも同じようなメッセージが出ると思いますよ

glarelance
質問者

お礼

どうやら、EXEファイルのみしか置いてない場所を設定していた空のようです。 EXEファイルと一緒に作成されるtest.pdbも置いておくと、この警告は出なくなりました。 ただ、libファイルの中の関数を書き換えても、デバッグ用のプログラムで表示される内容が変わってないのですが、VC++が自動的に、デバッグ用プログラムの方の関数ではなく新しく作成した、libファイルの関数を優先して呼び出すという感じのことをするわけではないのですか?

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

コンパイルの仕方をどのようにしたのでしょう F5キーによるコンパイル(本来は実行)なら質問のような現象に見舞われるでしょう 単に Libファイルを生成したいなら F7キーによるビルドでよさそうです 『デバッグで使用する実行可能ファイル名を指定して下さい』 とは そのLibファイルを使用するテストプログラム(EXE)という意味ですよ

glarelance
質問者

お礼

>そのLibファイルを使用するテストプログラム(EXE)という意味 とりあえず、ビルドしてlibファイルを作っくたとして、このlibファイルを使用して作ったEXEは、libファイルのデバッグ時にはDLLのように、実行時にテストしたいlibファイルの方から関数を呼び出してくるのですか? また、とりあえず、lib使って適当に作ったプログラムを指定してみると、 test.exe'のデバッグ情報が見つからないか、または一致しません。シンボルが読み込まれていません。 デバッグを続行しますか? と、出てきます。 このデバッグ用のプログラムというのは、何か特別なプロジェクトとかで作らないといけないのでしょうか?

関連するQ&A