我想调试我的项目,该项目使用 CMake。我有一个虚拟机(ubuntu),我正在 VS2022 中使用连接管理器通过 ssh 连接到我的机器。连接成功,但是当我想构建我的项目时,出现此错误。我不知道出了什么问题。有人可以帮助我解决问题或建议解决问题的方向吗?
日志:
1> [CMake] -- Generating done (0.1s)
1> [CMake] -- Build files have been written to: /home/...
1> Extracted CMake variables.
1> Extracted source files and headers.
1> Extracted code model.
1> Extracted toolchain configurations.
1> Extracted includes paths.
1> Specified method is not supported.
Specified method is not supported.
at liblinux.IO.Rsync.PrepareForDirectorySync(Int32 sessionID, IReadOnlyCollection`1 paths, RsyncDirection direction, RemoteRsyncDaemon daemon, String[] daemonOptions, Int32 localPort, RsyncVerbosity verbosity, Boolean recursive, IReadOnlyCollection`1 includes, IReadOnlyCollection`1 excludes, String customOptions)
at liblinux.IO.Rsync.<SyncDirectoriesAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at liblinux.IO.Rsync.<SyncDirectoriesAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.CMake.Linux.Project.CMakeLinuxHeadersUpdateTask.<>c__DisplayClass9_0.<<UpdateHeaders>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
at Microsoft.VisualStudio.CMake.Linux.Project.CMakeLinuxHeadersUpdateTask.UpdateHeaders(CMakeConfiguration config, IBuildProject project, String[] projectIncludes, String[] projectExcludes, String[] projectDownloads, Boolean force)
at Microsoft.VisualStudio.CMake.Linux.Project.RemoteCMakeParser.<AfterParseAsync>d__33.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.CMake.Linux.Project.RemoteCMakeParser.<ParseAsync>d__29.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.CMake.Project.ExternalBuildProject.ProjectProvider.<ParseProjectAsync>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.VisualStudio.CMake.Project.ExternalBuildProject.ProjectProvider.<ParseProjectAsync>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.Workspace.ExternalBuildFramework.Impl.ParseCache.<ParseAsyncImpl>d__34.MoveNext()```
I updated the rsync version on my machine, but it doesn't work.
问题在于 CMake 生成了一个非常长的字符串,其中包含多个路径,并且据我了解,这些路径被传递给了PrepareForDirectorySync 方法。由于字符串的长度非常大,PrepareForDirectorySync 方法返回错误并停止构建。