SO に関する次の 2 つの質問を読みました。出荷するランタイム ライブラリはどれですか? GCCに含まれるランタイム ライブラリのライセンスは? - どちらも非常に役に立ちましたが、私が探していたものではありませんでした。
私は常に自分のマシンで使用するプログラムを作成しているだけで、問題が発生したことはありませんが、他のマシンでソフトウェアの実行を開始したいと考えており、実行時の要件に注意しています。
編集:代わりに以下の例を参照してください。これは誤解を招くものでした。
具体的には、Windows マシンで C++ プログラムを作成し、MinGW を使用して gcc でコンパイルし、それを別のマシンで実行したい場合:
プログラムと一緒に libstdc++.dll を送信する必要がありますか?この単一のファイル (実行可能ファイルのディレクトリに配置されていると仮定します) は、プログラムを実行するのに十分ですか?
また、同じ例ですが、今回は Objective-C プログラムです。libobjc.dll ファイルを他のマシンに送信するだけで、プログラムを適切に実行できますか?
私は開発者ツールなどがインストールされたマシンでプログラムを実行することに慣れていましたが、今では汎用マシン (友人や同僚など) でプログラムを実行しようとしていますが、どうすればよいかよくわかりません!
編集: edificeの回答に応えて、探しているものを明確にする必要があると感じています。プログラムで使用する必要な DLL (/dylibs など) を特定する方法を知っています (ただし、その作業を手動で行うことに慣れていますが、どのツールについても聞いたことがありません)。私の質問は、「私は今何をしますか?」 でした。
より一般的な例がおそらく必要です。
C++、C および/または Objective-C(2) コードから派生したオブジェクト ファイルを含むプログラムを作成したとします。MinGW の gcc を使用して正常にコンパイルされた Windows API コードをいくつか使用しました。Visual Studio (C++) で作成したカスタム DLL もあります。
プログラムが実行時に使用する DLL を特定しました (そのうちの 1 つが GCC の libobjc.dll である可能性があります。これが Windows マシンで違いを生むかどうかはわかりませんが、できるだけ一般的なものにしたいと考えています)。 ) - 「前提条件の DLL」。
同僚のコンピューターで実行したいと思います。そのほとんどは Windows 7 を実行していますが、現在 Windows 8 を実行しているものもあります。完全を期すために最初から始めます。
- 前提条件の DLLを同僚のコンピューターに転送する必要がありますか?
- それらをどのディレクトリに配置すればよいですか? (exeディレクトリ/システムディレクトリ?)
- これらの DLL が存在することで、プログラムを正しく実行できますか? (それらを見つける場所を知っていると仮定します)
- DLL と一緒に転送する必要がある他のファイルはありますか?
基本的に私は、システムのランタイム要件の観点から、別のマシンでアプリケーションを開発および実行するための全体的な思考プロセスを決定しようとしています。