Visual Studio 2015 Win64在解决方案构建期间挂起

时间:2016-05-10 18:49:00

标签: visual-studio-2015 cmake

我正在尝试使用Visual Studio 2015从源代码构建一些第三方库。我正在使用cmake 3.2.3创建解决方案文件,我正在使用ExternalProject_add模块。我以前在32位Visual Studio 2012中成功编译和构建了这个cmake代码,但没有在64位中编译。

我现在正在尝试在64位Visual Studio 2015中构建它,并且在构建过程中使用调试和发布构建时,IDE会莫名其妙地挂起。有时构建过程仍在运行,例如cl.exe,但没有任何进展,我必须进入任务管理器并结束与构建相关的所有进程。然后我尝试再次构建它,有时它会成功构建,而有时它会遇到同样的错误;在代码中的不同行冻结,具体取决于它在构建中的程度。

在尝试使用32位构建解决方案时,我遇到了同样的问题。

我不确定我的Visual Studio 2015安装是否存在问题,或者我的cmake代码是否导致此挂起问题。我对ExternalProject_add之外的cmake了解不多,所以对cmake或visual studio的任何帮助都非常感激。

这是启动构建的外部项目代码:

include(ExternalProject)

ExternalProject_Add(${3rdPartyLibraryName}
    DOWNLOAD_DIR ${3rdParty_CacheDir}
    URL ${3rdPartyURL}
    SOURCE_DIR ${3rdPartySourceDir}
    TMP_DIR ${3rdPartySourceDir}/${3rdPartyLibraryName}
    BUILD_COMMAND nmake /f makefile.vc MSVC_VER=${MSVC_VERSION} WIN64=YES INCDIR=${CMAKE_SOURCE_DIR}/../3rdParty/${3rdPartyLibraryName}/test/include
    BINARY_DIR ${3rdPartySourceDir}
    CMAKE_ARGS
      -DCMAKE_INSTALL_PREFIX:string=${3rdPartySourceDir}
    INSTALL_COMMAND ""
)

修改

此外,我已经尝试从使用VS 2015环境设置的命令行构建它,并且遇到了同样的问题。

1 个答案:

答案 0 :(得分:5)

花了一段时间和一些研究,但我认为我已经复制了你的问题并找到了解决方案。我发现cl.exe似乎挂了,但是有一个名为“cvtres.exe”的进程实际上是挂起的。当我杀死那个进程时,编译将继续进行。似乎有一个KB3118401似乎已修复的已知错误。我安装了这个补丁,因此我没有遇到过这个问题。希望这有帮助!

https://www.microsoft.com/en-us/download/details.aspx?id=51161