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
ます。