VS remote building: "Makefile.Targets error: Cannot copy file remotely to directory"

VS remote building: "Makefile.Targets error: Cannot copy file remotely to directory"

我正在 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(适用于路径和文件名)远程构建了另一个项目,并且它工作得很好。

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

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

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

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