【发布时间】:2022-01-27 02:24:57
【问题描述】:
我已经使用工具链将 Qt 5.12.12 应用程序从 Linux 移植到 Windows 11:QtCreator、MinGW 7.30、amd64、C++。到目前为止,一切正常,除非我将应用程序(通过 Inno Setup Studio 安装程序,包括所有使用的 *.dll 文件)部署到“程序文件”。
当程序(名为“orange”)驻留在C:/Program Files/ORANGE/orange.exe 中时,它将永远不会启动,除非“以管理员身份运行”。当我将确切的文件夹 C:/Program Files/ORANGE 重命名为 C:/ORANGE 时,没有“管理员权限”一切正常;该应用程序运行完美。在D:/ 驱动器上的任何文件夹上都相同。
从C:/Program Files/ORANGE/orange.exe 开始时,程序会静默失败,但在 Windows 事件日志中,我可以在“计算机管理->系统工具->事件查看器->自定义视图->管理事件”中看到类似的条目:
错误应用程序名称:orange.exe,版本:1.1.0.0,时间戳:0x61ca2b05
错误模块名称:libgcc_s_seh-1.dll,版本:0.0.0.0,时间戳:0x00000000
异常代码:0x40000015
故障偏移:0x000000000000d125
错误进程ID:0x5b90
错误应用程序启动时间:0x01d7fb68b04bbb8e
错误的应用程序路径:C:\Program Files\ORANGE\orange.exe
错误模块路径:C:\Program Files\ORANGE\libgcc_s_seh-1.dll
报告 ID:3ccd12e6-cfd5-4cff-8d1b-c5450716a821
故障包全名:
错误的包相关应用程序 ID:
我通常不是 Windows 开发人员,因此非常感谢任何有关如何进一步调试或解决此问题的帮助。
【问题讨论】:
-
这听起来很奇怪,我不确定发生了什么。我想我会开始检查哪些用户/组对该文件具有执行权限(将其授予
Everyone),然后我会尝试禁用 Windows Defender 实时保护。 -
路径中的空格会怎样?
c:\ora nge呢? -
C:\Program Files 受 UAC 保护。您的程序是否尝试将任何文件写入与可执行文件相同的位置?
-
@drescherjm:你说得对——程序试图将日志文件写入其工作目录。 Windows应该对失败的原因多说几句……