编译程序在其他Windows PC上停止响应

时间:2016-11-22 19:54:46

标签: c++ windows visual-studio

我已经在vc ++ 14中编写了一个程序,可以在我的电脑上完美运行,既可以作为独立的可执行文件,也可以在visual studio 2015中进行调试。

然而,当我尝试在另一台电脑上运行它时,它会立即停止响应。使用调试符号,我发现通过make_uniquemake_shared的类的实例化失败,导致空指针异常。

我检查并确保目标计算机具有必要的vc ++运行时环境,并包含我能想到的任何其他dll。

我还尝试在构建期间静态链接必要的库,但没有任何改进。

我甚至尝试了一个安装程序项目,它没有检测到其他依赖项。

我现在不知所措。还有什么我应该找的吗?

1 个答案:

答案 0 :(得分:0)

验证以下内容。

  1. 确保您正在构建发布版本。在没有安装Visual Studio的PC上运行调试版本相对比较困难。
  2. 确保您拥有vc ++ 14运行时的确切版本,包括Service Pack编号。如果您使用的是vs2015 update 3,请在目标PC上下载并安装:https://www.microsoft.com/en-us/download/details.aspx?id=53587(正确的平台,32或64)。
  3. 确保预处理器中没有任何有趣的内容:您没有_DEBUG,没有_SECURE_SCL等。
  4. P.S。对于C语言运行库的动态链接不一定是发布版本的好主意。在某些Windows版本上,即使使用脱机安装程序,也无法将CRT更新为所需的版本,因为最近的CRT依赖于某些Windows更新。