就在最近几天,我正在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)
答案 0 :(得分:2)
我很久以前在VS中挂起构建时遇到了问题,我追溯了根本原因,始终与资源相关。比如一个缓慢的处理器(是的,当你编译时很重要!),或者内存不足。对我有用的唯一解决方案始终是完全重建(干净),并在构建时让计算机独立。这可能会或可能不会对您有所帮助,如果您分享更多信息,则可能会有更深入的了解。
答案 1 :(得分:0)
当构建失败时,我经常能够从挂起中恢复Visual Studio 2012并显示消息"等待当前正在执行的任务" CL"取消。"通过结束所有" cl"流程。例如,打开Windows任务管理器并找到名为" cl.exe"的所有进程。 (这是MSVC编译器)和它们的结束过程。 Visual Studio很快就会恢复操作。
如果有其他/自定义构建任务,则可能正在运行其他进程。例如,如果自定义构建事件启动可执行文件,则可能还需要终止该可执行过程。
答案 2 :(得分:0)
我发现如果在项目属性中出现错误导致输出文件夹无效,则vc12构建将显示为挂起。 例如,想要将OutputDirectory设置为某些内容,但在编辑属性时由于拼写错误而将其解析为无效路径。 构建似乎挂起而不是给出无效的路径错误。 我说似乎挂了,因为实际发生的事情在很长一段时间内没有任何作用,在此期间你无法取消退出DevStudio的构建。 最终(几分钟)它给出了一个错误,但是时间太长,看起来像一个挂起。
答案 3 :(得分:-1)
我必须在cl.exe /E
个文件中将/P
选项替换为Nvda.Build.CudaTasks.vX.Y.dll
以避开问题。几天前没有问题,所以我不确定问题出现的原因。