cmake“make install”到远程机器?

随着make install我可以复制我的二进制文件,configurationetcetera到目标文件夹执行。

现在我有以下情况:我们有一个虚拟机设置作为一个生成主机 ,另一个真正的Linux机器作为一个目标平台

我想要make install将文件直接复制到我的远程机器上的文件夹(通过scp或类似)。 我怎样才能做到这一点?

你经常可以做

  make install DESTDIR=/tmp/mydest/ 

然后将该目标目录归档

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

然后将该存档复制到远程位置

  scp /tmp/mydest.tgz remote:tmp/ 

最后,解开遥控器上的档案,并在适当的地方复制

make可以在安装时使用特定的前缀进行操作:

  make prefix=$dest/usr install 

解决您的问题是

  • 在你的机器上安装目标机器的文件系统。 这可以通过nfs(持久)或通过sshfs(更简单)完成,
  • 将$ dest设置为挂载点并运行上面的命令

使用cmake 2.8.14,可以使用命令“add_custom_command”到CMakeLists.txt中:

 add_custom_command(TARGET my_target POST_BUILD COMMAND scp $<TARGET_FILE:my_target> user@remote_host:dest_dir_path ) 

优点:只有在目标重建时才会调用。