【问题标题】:VS remote building: "Makefile.Targets error: Cannot copy file remotely to directory"VS 远程构建:“Makefile.Targets 错误:无法将文件远程复制到目录”
【发布时间】:2018-06-02 10:08:20
【问题描述】:

我正在 Visual Studio 上处理 Makefile 项目,从我的笔记本电脑修改代码并在我通过 ssh 连接到的 Linux 服务器上远程构建。

我这样配置我的项目属性页:

一般https://i.stack.imgur.com/3WdP6.png

调试https://i.stack.imgur.com/zI5ua.png

远程构建 > 构建命令行:cd $(RemoteProjectDir) && echo 密码 |sudo -S make

在远程项目目录中,我已经有了项目的每个文件,Makefile 也是。当按下 Compile 我希望 VS 将更改的代码从本地目录逐个文件复制到远程目录,但我得到的唯一错误是:

      Linux.Makefile.Target(108,5): error : Cannot copy \foo\bar\file.cpp remotely to /home/user/projects/MyProject/file.cpp

在带有目标扩展名的文件的第 108 行有这个标签:

 <CopySources
  Sources ="@(FinalSourcesToCopyRemotely)"
  AdditionalSources="@(AdditionalSourcesToCopyRemotely)"
  ProjectDir="$(ProjectDir)"
  RemoteProjectDir="$(RemoteProjectDir)"
  RemoteTarget="$(ResolvedRemoteTarget)"
  IntermediateDir="$(IntDir)"
  RemoteProjectDirFile="$(RemoteProjectDirFile)"
  UpToDateFile="$(CopySourcesUpToDateFile)"
  LocalRemoteCopySources="$(LocalRemoteCopySources)">
  <Output TaskParameter="ResolvedRemoteProjectDir" PropertyName="_ResolvedRemoteProjectDir" />
  </CopySources>

这个文件可能是由于某种原因导致问题的原因吗?修改 .targets 文件好不好? 我之前已经使用相同的配置和类似的 Makefile(适用于路径和文件名)远程构建了另一个项目,它工作得很好。

[编辑]:我添加了命令回显密码| sudo -S makesudo 提示的密码请求进行交互,这在另一个项目中有效,我仍然收到错误

【问题讨论】:

    标签: c++ visual-studio ssh makefile remote-debugging


    【解决方案1】:

    can't use sudo when debugging 。所以我猜你在构建时也不能使用sudo。问题是sudo 提示输入密码,而 VSLinux 无法处理。一种选择是配置sudo,这样它就不会请求密码,但不建议这样做。你能改变你的设置,让它不需要sudo吗?

    【讨论】:

    • 我已经找到了解决方案,但我忘了将它添加到描述中。不幸的是,这不是这里的问题。现在我已经编辑了问题谢谢你的提醒
    【解决方案2】:

    长话短说:如果您遇到此错误,只需创建另一个具有与第一个完全相同的属性的项目即可。

    问题可能是因为我在使用正确的属性之前多次更改了属性,这可能创建了一些配置(-ish)文件,修改后没有改变。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-20
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多