3

トポロジカルソートされた順序で(Linuxで)多重依存C ++ CMakeプロジェクトを構築する場合、2つの可能性があります。

すべてのプロジェクトを通過し、...

  1. ...プレフィックスを付けて「makeinstall」します。プロジェクトでライブラリをビルドするときは、すでにインストールされているライブラリにリンクします。

  2. ...「make」を介してビルドします。インストールしないでください。プロジェクトでライブラリをビルドするときは、すでにビルドされているライブラリにリンクします。

それらの選択の長所/短所は何ですか?依存関係を解決したり、正しい順序でビルドしたりする自作スクリプトによって実行されるビルド。

4

2 に答える 2

1

もちろん両方できます。しかし、「インストール」の考え方は、ライブラリ、ヘッダー、ドキュメントなどを、ソース コード ツリーのレイアウトに依存しない、明確に定義されたディレクトリに配置することです。

ほとんどの場合、そのパッケージのプログラマーだけが興味深い別のソースと、他のパッケージのユーザーとプログラマーにとって興味深いコンパイルされたプログラムライブラリなど。

1 つのサブパッケージのディレクトリ構造を変更する必要があるとします。インストールしないと、他のすべての man スクリプトを調整する必要があります。

そう:

ソリューション 1 の長所 (== ソリューション 2 の短所)

  • パッケージ全体の保守性の向上
  • 「期待される」方法
于 2012-08-09T06:06:18.423 に答える
0

make概念的にmake install異なる 2 つのことを実行することが期待されます。良くも悪くもありません。make(「Art of Unix Programming」から)を使用して、プログラムのインストールの通常のシーケンスを説明することで説明します。

  • make (all) -すべてのプロダクションは、プロジェクトのすべての実行可能ファイルを作成する必要があります。通常、すべてのプロダクションには明示的なルールはありません。代わりに、プロジェクトのすべてのトップレベル ターゲットを参照します (そして、偶然ではなく、それらが何であるかを文書化します)。通常、これは makefile の最初の生成である必要があるため、開発者が引数なしで make を入力したときに実行されるものになります。

  • make test - プログラムの自動化されたテスト スイートを実行します。これは通常、開発プロセス中に期待される動作からの回帰、バグ、またはその他の逸脱を見つけるための一連の単体テストで構成されます。「テスト」プロダクションは、ソフトウェアのエンドユーザーがインストールが正しく機能していることを確認するためにも使用できます。

  • make install - プロジェクトの実行可能ファイルとドキュメントをシステム ディレクトリにインストールして、一般ユーザーがアクセスできるようにします (これには通常、ルート権限が必要です)。実行可能ファイルが機能するために必要なデータベースまたはライブラリを初期化または更新します。

クレジットは、この回答に対して Eric Steven Raymond に送られます

于 2012-08-09T06:26:16.903 に答える