40

私は(10-15)分を構築するのにかなりの時間がかかるプロジェクトに取り組んでいます。コンパイルエラーがあるかどうかを確認するために再コンパイルしました。次に、インストールディレクトリを変更して、新しいバージョンの実行可能ファイルに新しい変更を加えます。'make install'が古い場所ではなく新しい場所にインストールされるようにインストールパスを変更する方法はありますか?

4

5 に答える 5

60

CMakeで生成されたmakefileは、makefileのDESTDIRコーディング規則をサポートします。DESTDIRしたがって、 makeの呼び出し時に変数を設定することにより、デフォルトのインストール場所をオーバーライドできます。

$ make install DESTDIR=/opt/local

CMakeを再実行する必要はありません。

于 2012-11-21T07:33:03.850 に答える
19

で CMake を実行して-DCMAKE_INSTALL_PREFIX=<somewhere different to last time>も、プロジェクトを再コンパイルする必要はありません。コンパイラ フラグを変更するなど、他のコマンド ライン パラメーターを CMake に渡すと、影響を受けるターゲットの再構築強制されますが、インストール プレフィックスを変更するだけではそうはなりません。

于 2012-11-21T01:27:06.090 に答える
10

DESTDIR とプレフィックスの標準的な定義は次のとおりです。ファイルは $DESTDIR$prefix にインストールされますが、最終的なインストール場所が $prefix であるかのように準備されます。

したがって、DESTDIR はバイナリのパッケージまたは tarball をビルドする人のみを対象としています。CMAKE_INSTALL_PREFIX は、ビルドされたバイナリが最終的に存在する場所を指定したい人向けです。

于 2014-06-15T21:38:25.930 に答える
4

誰かがCMakeを使用していない場合に備えて、Makefileでそれを行う方法があります。ビルドディレクトリにMakefile.configファイルが生成されている場合は、を見つけますprefix。これprefixは、pathバイナリ/ヘッダーなどがインストールされるインストールです。これを変更すると、バイナリ/ヘッダーが変更されたにインストールされpathます。

于 2013-03-13T21:19:20.910 に答える