0

Linux システムで実行するアプリケーションを構築しています。現在、ビルド プロセスは、複雑すぎる単純な Makefile で構成されています。

Linux アプリケーションを適切に開発する方法について、基本的な理解が欠けていると思います。私が見つけた情報は次のとおりです。

  • アプリケーションにはmake install、すべてのファイルを適切な場所に移動するターゲットが必要です。
  • アプリケーションをインストールする通常の場所は/usr/binまたは/usr/local/binです。
  • データ ファイルはそれぞれ/usr/shareまたはに配置する必要があり/usr/local/shareます。ビルド プロセスのどこかでパス プレフィックスを設定できるはずです。

この情報を得て、私は今疑問に思っています:

  • プレフィックスを適切に構成する方法: ビルド プロセスはパスをパラメーターとして取得し、それをコードにハードコードする必要がありますか? これはテストにも不可欠です。すべてをどこかにインストールする必要なく、ソース フォルダーのデータ ファイルのみを使用する実行可能なバイナリを何らかの方法で作成できるはずです。
  • autotools や cmake などを使用する必要がありますか? autotools は、少なくともビルド システムだけでなく、プレフィックスの構成なども処理するようです。これは正しいです?cmake はどのように比較されますか?
  • これは請負仕事ですが、本当にこれらのことを気にする必要がありますか? アプリケーションは、明確に定義された顧客のシステムでのみ実行されるため、必要なすべてのファイルを含むフォルダーを提供することで問題を解決でき、そのフォルダー内からアプリケーションを実行できました。

したがって、私は基本的に、可能性と一般的な慣行について概説し、ビルドと展開のプロセスを微調整するかどうか、およびその方法について十分な情報に基づいた決定を下すことができる優れたリソースを探しています。

4

1 に答える 1

1

通常、作成する前に実行する ./configure スクリプトがあります。このスクリプトは、依存関係をチェックするためのものです。コンパイル時のスイッチをプロジェクト固有の変更などに設定します。これはプレフィックスを設定する場所でもあります。プレフィックスを指定しない場合、通常は /usr/local にインストールする必要があります。

後で一部のディストリビューション用のパッケージ (*.rpm、*.deb ...) を作成する場合、通常は /usr/ をプレフィックスとして使用します。

完全な ./configure を手で書くのは常軌を逸しているため、gnu autotools が広く使用されています。最初は少し膨らみ、痛みがありますが、本当に良い仕事をします.

http://markuskimius.wikidot.com/programming:tut:autotools/のようないくつかのチュートリアルを見ることができます。

私はそれを経験していないので、cmakeについては何も言えません。

最後の質問について:

これは請負仕事ですが、本当にこれらのことを気にする必要がありますか? アプリケーションは、明確に定義された顧客のシステムでのみ実行されるため、必要なすべてのファイルを含むフォルダーを提供することで問題を解決でき、そのフォルダー内からアプリケーションを実行できました。

はい、あなたはそれを気にする必要があります。更新とアップグレードの場合、これはあなたの人生を簡素化します。

于 2013-08-29T07:56:48.393 に答える