2012-01-23 11 views
6

make installバイナリ、configsなどをターゲットフォルダにコピーして実行することができます。cmake "make install"をリモートマシンにインストールしますか?

今、私は次のような状況を持っている:我々は、ターゲットプラットフォームとしてビルドホスト、および異なる実際のLinuxマシンとして仮想マシンを設定しています。

make install私のリモートマシン上のフォルダに直接ファイルをコピーしたいと考えています(scpなどを介して)。それをどうすれば実現できますか?

+0

さて、makeは 'scp'を実行します。 –

答えて

1

makeは、インストール時に特定のプレフィックスで動作させることができます。

make prefix=$dest/usr install 

あなたの問題を解決するには、ビルドマシン上でターゲットマシンのファイルシステムをマウント

  • です。これは、多くの場合、アーカイブその後、

    make install DESTDIR=/tmp/mydest/ 
    

    を行うことができ

  • 集合$ DESTマウントポイントに、NFS(永続的な)を介して、または(簡単に)sshfsのを経由して行われ、
+0

接頭辞は何もしないようです。 DESTDIRは(他の答えと同様に)動作しますが、マウントは一度にすべての作業を行えるようにする方法です(ローカルネットワークコンピュータの外にSSHマウントを使用してサーバーをリモートにすることもできます)。 –

5

ます上記のコマンドを実行することができます先のディレクトリ

tar czvf /tmp/mydest.tgz -C /tmp mydest 

は、遠隔地に

をそのアーカイブをコピーします リモートでアーカイブuntarし、最後に

、とはcmakeの2.8.14、コマンドを使用して、適切な場所

+0

これらすべての中間ステップを防ぎます。私はcmakeがファイルをコピーするためにcopy(cp)コマンドを使用すると思います。何とかして、何とかcmakeにscpを使うように指示する必要があります。 – Danoo

+0

DESTDIRはcmake Makefilesで作業しました。正確に私が必要としたもの。 –

+0

多くの場合、ソースには「README」という名前のファイルがあります。そのファイルの内容は手がかりを与えるかもしれません。たとえば、pcre-8.39は 'make dist'や' make distcheck 'を使ってtarballを作ることを示唆しています。 –

1

でそれをコピーし、「add_custom_command」CMakeLists.txtにも使用することができます。

add_custom_command(TARGET my_target POST_BUILD COMMAND scp $<TARGET_FILE:my_target> [email protected]_host:dest_dir_path) 

利点:ターゲットが再構築されたときのみ呼び出します。

関連する問題