続き。
■Windows で eclipse ~CUTEインストール編~
■Windows で eclipse ~CUTE入門編~
■Windows で eclipse ~CUTE入門編 Part.2~
■Windows で eclipse ~CUTE実践編(1)~
「というわけで、次回はこのエラーの修正方法を書きます」
■Windows で eclipse ~CUTE実践編(1)~
■Windows で eclipse ~CUTE実践編(2)~
■Windows で eclipse ~CUTE実践編(3)~
■Windows で eclipse ~CUTE実践編(4)~
■Windows で eclipse ~CUTE実践編(5)~
■Windows で eclipse ~CUTE実践編(3)~
■Windows で eclipse ~CUTE実践編(4)~
■Windows で eclipse ~CUTE実践編(5)~
「というわけで、次回はこのエラーの修正方法を書きます」
と書いたが、実は重大な問題があり、その解決策を書く事にした。
今まで「実行方法」は記載していたが、「デバッグ方法」については記載していなかった。
これは、 「任意のフォルダにDLLを格納した場合」のデバッグ方法が判らなかったためである。
今回、様々な調査の結果、 「任意のフォルダにDLLを格納した場合」でも、デバッグできる方法を突き止めた。
1.デバッグできない……orz
デバッグすると、下記エラーメッセージが表示される。
[実行] > [デバッグの構成] を開き、下記を試したが成果なし。
- [共用ライブラリ] にパスを記述
- [(フルパス)]
- [(フルパス)/libCalcLib.dll]
- [.gdbinit] ファイルに、共有ライブラリのパスを記述する。
- [set shared CalcLib]
- [set shared libCalcLib.dll]
- [set shared (フルパス)libCalcLib.dll]
ふと思い立って、[libCalcLib.dll] を、[Calc/Debug] の下にコピーしたら、なんとすんなりデバッガが起動した!!
なので、デバッガに [libCalcLib.dll] のパスが通知されていないだけ、ということが明確になった。
▼対策1 ビルド完了時に、DLL をEXEが格納されているフォルダにコピーする
プロジェクトのプロパティを表示し、
[C/C++ビルド] > [設定] > [ビルド後のステップ] > [コマンド:]
に、コピーコマンドを記述してみた。
で、ビルドしたところ、
「プログラム "copy" を実行できません: 起動失敗」
と表示された……orz。
ということで、この方法は断念。
▼対策2 環境変数PATHを書き換える
実は、Eclipse の設定を変更しても、GDB に共有ライブラリのパスは通知されない。
しかし、Windowsのシステムプロパティに共有ライブラリのパスを書くと、GDBに認識される。
[コントロールパネル] > [システム] > [詳細設定タブ] > [環境変数] > [システム環境変数] > [path]
に、[libCalcLib.dll] のパスを追加する。
こうすると、[libCalcLib.dll] をコピーしなくてもデバッガが起動する。
とはいえ、プログラムを作ったり、ファイルを移動するたびにいちいちパスを書き換えるのは精神衛生上あまりよくない。まだコピーした方がマシ。
▼対策3 作業ディレクトリーをDLL格納フォルダに変更する
だいぶ悩んでようやくたどり着いた方法がコレ。
詳細は下記参照。
2.任意のフォルダに格納されたDLLをデバッグする方法
0 件のコメント:
コメントを投稿