CとC ++の世界から来たほとんどのビルドシステムには、installターゲット、特にMakefiles(たとえばGNUが推奨する場所)またはCMakeがあります。このターゲットは、オペレーティングシステム(C:\Program Files\Windowsなど)のランタイムファイル(実行可能ファイル、ライブラリなど)をコピーします。
私にとっては、プログラムをインストールすることはビルドシステムの責任ではないため(実際にはオペレーティングシステム/パッケージマネージャーの責任です)、これは非常にハッキリしています。また、ビルドシステムまたはビルドスクリプトは、環境変数、レジストリ変数、シンボリックリンク、権限などを使用して、インストールされたプログラムの構成を認識している必要があります。
せいぜい、ビルドシステムにはrelease、インストール可能なプログラム(.debまたはなど.msi)を出力するターゲットがあり、そのプログラムをインストールするようオペレーティングシステムに親切に依頼する必要があります。また、ユーザーはを入力せずにアンインストールできmake uninstallます。
だから、私の質問:ビルドシステムは通常、installターゲットを持つことを推奨するのはなぜですか?
make install通常、「コアOS /パッケージ管理システム」によって処理されないディレクトリである/usr/local(または/opt)の下にインストールされます。ただし、Windowsに同様の規則があるかどうかはわかりません。
make installクロスコンパイルについて話すときは意味がないことに注意してください
DESTDIRます。