2011-03-24 88 views
1

最近我在Visual Studio 2010中编写了一个使用Qt的程序。我已经正确配置了我的Qt设置,因为我之前成功运行了该程序。但是现在我无法在编译模式下运行该程序(IDE外部),但它在调试模式下正常运行。vs2010无法在编译模式下运行文件,但在调试模式下正确执行

我的操作系统是Windows 7,而我正在使用Qt 4.7

PS。它不会说丢失DLL,只是无声地崩溃....

+0

是什么错误?它是说缺少DLL的? – yolo 2011-03-24 16:05:20

+0

它不会说缺少DLL,它只是无声地崩溃... LoL – JeromeZhao 2011-03-24 16:06:58

+0

您是否正在加载任何资源或以其他方式打开文件? IDE中的Path变量不同。 – JCooper 2011-03-24 16:18:01

回答

0

如果它在释放模式下执行,但崩溃它可能不是什么关系与Qt。

可能性 - 您在调试/发布模式下设置了不同的环境。你是从Debug \ Release目录中的命令行还是从MSVC中的ctrl-f5运行它? 因此,一个版本可能会发现错误的dll集,也许是早期版本?

或者更多似乎,您的代码中只有一个缺陷出现在发布模式中。最常见的是未初始化的变量,调试模式通常将所有变量设置为零,而在释放模式下,它们可以包含任何随机值。

0

也许您的代码取决于存储在应用程序文件夹中的某些文件,并且这些文件在发布文件夹中缺失?

或者你的系统中可能安装了许多Qt版本,而VS中使用的版本与应用程序中可见的版本不同?

0

我最近有类似的问题,我花了很长时间来修复它。调试版本工作,因为它是比发布版本慢,未被优化。发布版本太快了,在它被设置之前正在等待一个互斥体。我通过编译调试版本并明确启用优化来发现问题。如果你认为这可能是一个类似的时间问题,你可能想尝试这个。

修改为添加:另一种可能是您打破了一些反锯齿规则或任何其他方法,如果您的代码未优化,则不会造成任何伤害。再次尝试在调试版本中启用优化。 (另外,单步执行完全优化的代码可能是超现实的)。

0

如果这是您第一次尝试在您的计算机上以释放模式运行您在VS中构建的任何内容,这通常是没有VS运行时库的问题安装。安装VS不会将它自己的运行时库安装到系统中。在IDE内部运行时可以使用调试版本和发行版本,在IDE之外运行将不起作用。这是一个巨大的PITA,找到vcredist的正确版本。它在Visual Studio树中的某处(不记得在哪里安装它并从那里继续)。

你可以看到,如果是安装在“添加/删除程序”设置对话框vcredist的任何版本,但它始终是要弄清楚一个问题,如果安装的一个是完全正确的

相关问题