Windows 7 で c/c++ 用の Eclipse Juno を使用しています。共有ライブラリ プロジェクトと実行可能プロジェクトを作成しました。次の方法で、共有ライブラリ プロジェクトを実行可能プロジェクトの参照として追加しました。
実行可能プロジェクトのプロパティ -> C/C++ 一般 -> パスとシンボル -> 参照 -> 共有ライブラリ プロジェクトをチェック
これはすべてコンパイル時にうまく機能し、共有ライブラリ プロジェクトのクラスを実行可能プロジェクトに含めて使用することができます。
しかし、Eclipse で実行可能プロジェクトを実行しようとすると、何も得られません。エラーなし、コンソール出力なし。グーグルで調べた後、ここで同様の問題を発見しました:
http://www.eclipse.org/forums/index.php/m/650331/
上記のように、明らかに共有ライブラリ プロジェクトを Eclipse の実行可能プロジェクトに追加しても、実行時に Eclipse 内で実行可能 (.exe) ファイルの PATH に dll ファイルが追加されません。Eclipse for Java との類推として: Java JAR プロジェクト A と別の Java JAR プロジェクト B がある場合、Eclipse で B から A への参照を作成することにより、Eclipse 内でプロジェクト A を実行すると、B のコンパイルされた jar ファイルが A のクラスパスに追加されます。 . C/C++ 用の Eclipse と似ていると思っていましたが、どうやらそうではないようです。
案の定、手動で .exe ファイルと .dll ファイルを取得し、それらを同じフォルダーに配置して .exe を実行すると、すべて正常に動作します。また、実行可能プロジェクトの Eclipse のコンパイル ディレクトリに .dll ファイルをコピーすると、Eclipse から実行可能プロジェクトを実行でき、問題ありません。
私の質問は、実行可能プロジェクトを実行するようにEclipseに指示しているときに、Eclipseにその共有ライブラリプロジェクトのdllファイルをランタイムに追加させる方法はありますか? 上記のリンク先の投稿で説明されている解決策は、シャード ライブラリ プロジェクトのコンパイル ディレクトリを、実行可能プロジェクトの Eclipse の実行構成に手動で追加することです。つまり、そこの PATH 変数に追加します。しかし、これは面倒で移植性がないと思います。Eclipse が両方のプロジェクトを管理している場合、必要なものをすべてランタイムに渡すことができるはずです。