【问题标题】:Visual Studio 2012 build hangsVisual Studio 2012 构建挂起
【发布时间】:2016-10-22 19:24:23
【问题描述】:

就在最近几天,我在 MSVS2012 中处理的一个项目已经开始挂起。我已采取措施尝试记录 VS 在以下链接中所做的事情:How to Troubleshoot Visual Studio 2012 Hangs/Lockups 但无法找到任何“错误”或任何“无法”加载的内容。构建将完成,但现在需要几分钟而不是几秒钟。每当我尝试取消构建时,我都会收到一条关于系统如何等待“GenerateDeps”完成的通用消息。

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\CUDA 6.0.targets(402,9): warning MSB4220: Waiting for the currently executing task "GenerateDeps" to cancel.

编辑

这里有一些额外的详细/诊断输出。这似乎是VS落后的地方......

Input file "GPU RKF45 (Variable Step Size).cu" is newer than output file "x64\Debug\GPU RKF45 (Variable Step Size).cu.deps".
1>Using "GenerateDeps" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\Nvda.Build.CudaTasks.v6.0.dll".
1>Task "GenerateDeps" (TaskId:23)
1>  Task Parameter:
1>      AdditionalIncludeDirs=
1>          C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include
1>          C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin
1>          C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include
1>          . (TaskId:23)
1>  Task Parameter:ForcedIncludeFiles=cuda_runtime.h (TaskId:23)
1>  Task Parameter:
1>      PreprocessorDefinitions=
1>          __CUDACC__
1>          _MBCS (TaskId:23)
1>  Task Parameter:SourceFile=C:\Users\Karsten Chu\New Google Drive\Research\Visual Studio 2012\Projects\Dynamic Parallelism Test\Dynamic Parallelism Test\GPU RKF45 (Variable Step Size).cu (TaskId:23)
1>  Command: (TaskId:23)
1>  The "GenerateDeps" task is using "cl.exe" from "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\cl.exe". (TaskId:23)

【问题讨论】:

  • 如果构建最终完成,这实际上不是挂起/锁定。您是否尝试过完全干净的构建?您是否在项目变慢之前进行了任何项目更改?
  • 我已经尝试在构建之前进行清洁,但似乎没有帮助。我做了一些更改,仅涉及使用 CUB 库中的一些函数。我正在尝试让自己了解影响构建时间的因素,以尝试追踪这一点。

标签: c++ visual-studio-2012 cuda


【解决方案1】:

很久以前我在 VS 中挂起构建时遇到过问题,我追溯了始终与资源相关的根本原因。例如处理器速度慢(是的,编译时很重要!),或者内存不足。唯一对我有用的解决方案始终是完全重建(干净),并在构建计算机时不理会计算机。如果您分享更多信息,有人可能会有更深入的了解,这可能对您有帮助,也可能无济于事。

【讨论】:

    【解决方案2】:

    当构建失败并显示消息“等待当前执行的任务“CL”取消”时,我经常能够从挂起中恢复 Visual Studio 2012。通过结束所有“cl”进程。例如,打开 Windows 任务管理器,找到所有名为“cl.exe”的进程(即 MSVC 编译器)并结束它们的进程。 Visual Studio 很快就会恢复运行。

    如果有其他/自定义构建任务,可能有其他进程正在运行。例如,如果自定义构建事件启动了可执行文件,则可能还需要终止该可执行进程。

    【讨论】:

      【解决方案3】:

      我发现如果您在项目属性中出现错误导致输出文件夹无效,则 vc12 构建将出现挂起。 例如,想要将 OutputDirectory 设置为某些内容,但在编辑属性时出现拼写错误,它解析为无效路径。 构建似乎挂起,而不是给出无效的路径错误。 我说似乎挂起,因为实际上发生的事情是在很长一段时间内什么都不做,在此期间您无法取消退出 DevStudio 的构建。 最终(几分钟)它给出了一个错误,但那个时间太长了,看起来像一个挂起。

      【讨论】:

        【解决方案4】:

        我不得不在 Nvda.Build.CudaTasks.vX.Y.dll 文件中将 cl.exe /E 选项替换为 /P 以规避问题。几天前没有问题,所以我完全不确定为什么会出现问题。

        【讨论】:

        • 可能是硬盘坏了。更改二进制文件从来都不是一个好主意。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-18
        • 2013-10-01
        • 2023-03-09
        • 2012-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多