• ベストアンサー

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

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

  • デバッグセッションの実行可能ファイル

    Visual C++ 2008 Express EditionでC言語のプログラムをコンパイルし、エラーも警告も出ないので、デバッグ(実行)を行ったところ、 「デバッグセッションの実行可能ファイル」を選択する画面に移りましたが、何を設定したらよいのかさっぱりわかりません。 プログラムは単純なものなので、特にややこしいことはないと思うのですが・・・

  • VC++で作成したDLLのデバッグ

    VC++6.0で作成したDLLファイルのデバッグ作業でVBでコンパイルした EXEファイルを使うと、例外エラーが発生してしまいます。 EXEファイルにデバッグ情報が書き込まれるのでしょうか? 次からそのEXEファイルを利用すると、やはり例外エラーがおきます。 (それに長い間気づかず、ずっとバグ探しをしてました。) VC++のDLLファイルのデバッグモードはVBのEXEファイルでは利用できないのでしょうか?

  • ライブラリファイルのリンク (リリースバージョン時)

    VisualC++ 2005 Express Editionでライブラリファイル(.lib)をリリースバージョンでビルトし、違うプログラム(デバックバージョン)でライブラリファイルをリンクしたとき 1>コンパイルしています... 1>main.c 1>リンクしています... 1>CheckMemory.lib(check_memory.obj) : MSIL .netmodule または /GL を伴ってコンパイルされたモジュールが見つかりました。/LTCG を使用して再開始してください。リンカのパフォーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。 1>LINK : warning LNK4075: /INCREMENTAL は /LTCG の指定によって無視されます。 1>LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 と出るのですが、これはどうゆうことなのでしょうか? 分かる方いらっしゃいますか?お願いします。 ちなみにライブラリファイルは簡易メモリチェックプロブラムでデバック時のみ使用したいと考えているプログラムです。 使用言語はc言語です。 文章下手ですみません^^;

  • C++言語でのライブラリファイルの作成と使用法

    よろしくお願いします。 C言語において、例えばMinGWのCコンパイラのLibディレクトリには、拡張子が「.a」のライブラリファイルがたくさん存在しています。これらは、arコマンドで ar crv libMine.a 1.o 2.o のように作成されるものだと認識しています。 一方、C++言語において、例えばBorlandのC++コンパイラのLibディレクトリには、拡張子が「.lib」というライブラリファイルがたくさん存在します。 これらのファイブラリファイルは、C言語のaファイルと同じ役割をする考えてよいのでしょうか? また、C++において自作のライブラリファイル(libファイル)を作成するにはどうすればよいのでしょうか? 次に、C++における自作ライブラリの使用法についてですが、Cではコンパイル時に gcc -o 1.exe 1.c libMine.a のようにして、自作のライブラリファイルを使うことができますが C++のコンパイルコマンド、例えばbcc32コマンドを使ってコンパイルする時に、 自分が作成したlibファイルを使うにはどのようにすればよいのでしょうか? 最後に、Borland C++コンパイラをインストールするときに、Binディレクトリにあるbcc.cfgファイルに -L"c:\Borland\Bcc55\lib" と記述したのですが、これは、 c:\Borland\Bcc55\libにあるlibファイルをコンパイル時に自動的に読み込むということなのでしょうか?

  • インポートライブラリ(.lib)ファイルについて

    インポートライブラリファイル(.lib)とは 何を行うファイルなのでしょうか。 外部DLLを使用可能にするためのファイルでしょうか。 libファイルの意味、使用方法を教えてください。

  • VisualC++.netの実行ファイル(.exe)

    VisualC++.netを今日インストールしたばかりです。どうにかこうにかプログラムを実行してみたのですが、デバッグが開始されず、実行ファイル(.exe)も作成されません。VisualC++.6.0で作ったプログラムで、エラーも出なかったものなので、プログラムに問題はないはずなのですが・・・一体何が問題なのでしょうか。誰か教えて下さい。本当に困っています・・・

  • EXEを起動するとDLLが見つからないエラー

    VC超初心者です。 あるベンダ提供のdllとヘッダファイル、libファイルすべてそろっています。 DLLを使用するにあたって、宣言を記述せずにlibファイルをインポートしました。 どうにかこうにかコーディングをしました。VisualC++でソースを開いて実行(F5)すると正常に動きました。 しかし、いざEXEファイルを作ってそれを実行すると「DLLが見つかりません」というエラーが出ます。 これはどうすれば回避できますか?

  • VBがデバッグ時落ちてしまう

    VC6.0でDLLを作成し、VB6.0で呼び出すプログラムを作成しています。 DLLの内容はWindowハンドルを引数にしてそのハンドルを持つWindow上にListboxを作成するというようなものです。(もともとC言語用のDLLだったものをVBで使いまわしています) このプログラムをデバッグ実行し、デバッガ上で停止[実行->終了]とすると、VB6.exeがアプリケーションエラーで落ちてしまいます。(DLLの関数を呼ばない限り大丈夫です) デバッグ実行でも普通に終了(アプリケーションでの終了)であれば正常に終了してくれます。 このままですと、実行時エラーで止まる度にVB6.exeが落ちてしまい非常に不便です。 このような現象で困った方いませんか? 解決策がありましたら教えてください。

  • デバッグ開始でbin\Releaseにファイルが作成されてしまう。

    デバッグ開始でbin\Releaseにファイルが作成されてしまう。 Visual Studio 2008でC#によるWindowsアプリケーションを作成しているのですが、デバッグ開始を実行するとbin\Releaseにexeファイルなどが作成されてしまいます。 ビルドするとbin\Releaseにexeファイルなどが作成されます。 デバッグ開始の実行でbin\Debugにexeファイルなどが作成され、ビルドするとbin\Releaseに作成されるようにしたいのですが、どうすれば良いですか? ちなみに***.vshost.exeはbin\Releaseに作成されます。 これもbin\Debugに作成されるようにしたいです。

  • スタートメニューの「ファイル名を指定して実行」の操作で、名前ボックスに

    スタートメニューの「ファイル名を指定して実行」の操作で、名前ボックスに、それぞれ「Regsvr32.exe Accwiz.dll」、「Regsvr32.exe dao360.dll」と入力し、OKをクリックしたところ、「Load Library("Accwiz.dll")に失敗しました-指定されたモジュールが見つかりません。」、「Load Library("dao360.dll")に失敗しました-指定されたモジュールが見つかりません。」というメッセージが返ってきました。 メッセージの意味が分からず、対処法に困っています。どなたかアドバイスよろしくお願いします。

専門家に質問してみよう