代码之家  ›  专栏  ›  技术社区  ›  Ruffio

VS remote building:“Makefile.Targets错误:无法将文件远程复制到目录”

  •  0
  • Ruffio  · 技术社区  · 7 年前

    我正在Visual Studio上进行一个Makefile项目,修改笔记本电脑中的代码,并在通过ssh连接的Linux服务器上远程构建。

    我将项目属性页配置为:

    全体的 : https://i.stack.imgur.com/3WdP6.png

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

    远程生成(>);生成命令行 :cd$(RemoteProjectDir)(&&回响 暗语 |sudo-S品牌

    在远程项目目录中,我已经有了项目的每个文件,还有Makefile。按下时 编写 我希望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>
    

    出于某种原因,此文件可能是问题的原因吗?修补一个好吗。目标文件? 我之前已经远程构建了另一个项目,使用相同的配置和类似的Makefile(适用于路径和文件名),它运行得很好。

    [编辑]:我添加了命令 echo密码| sudo-S make 与提示的密码请求交互 苏多 ,这在另一个项目中有效,但我仍然得到错误

    2 回复  |  直到 6 年前
        1
  •  0
  •   stanthomas    7 年前

    can't use sudo when debugging . 所以我猜你不能用 苏多 在构建时。问题是 苏多 提示输入密码,VSLinux无法处理。一个选项是配置 苏多 因此,它不会请求密码,但不建议这样做。您能否更改设置,使其不需要 苏多 ?

        2
  •  0
  •   IKavanagh    6 年前

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

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