我正在尝试移植我在Linux上首先开发的Qt项目。这是我第一次在Windows上构建体验,而我无法解决问题的事实可能来自一个非常明显的缺失事物。
我尝试过的Windows配置是下一个:
使用这两个配置,我获得了一个可以在主机上成功运行的可执行文件,但是当我在新安装的Windows 10上部署应用程序时,应用程序启动几秒钟然后停止(/崩溃?)。但是,错误消息,恢复对话框和事件日志都没有显示任何内容。
在新安装的Windows 7 SP1上,我收到一条错误消息,指出无法找到CreateFile2的入口点。我知道自Windows 8以来已添加此功能,但我无法理解为什么应用程序是使用这样的入口点构建的,尽管我在.pro文件中定义_WIN32_WINNT如下:
DEFINES += "_WIN32_WINNT=0x0601"
我也尝试了WINVER定义,没有成功:
DEFINES += "WINVER=0x0601"
我假设使用this git提供的依赖软件没有丢失DLL。我还尝试了“超过折旧”的Dependency Walker,它没有显示缺少的库。
提前感谢谢谢拯救我的Windows人员!
答案 0 :(得分:0)
好的,我发现我的项目正在使用的一个静态库,我通过VS 2017编译的包含CreateFile2引用(使用dumpbin.exe)。我使用正确的_WIN32_WINNT值重新编译它,并且还重新编译了Qt项目。但是,CreateFile2引用仍然存在。
答案 1 :(得分:0)
最终,我发现了这个问题! 问题来自我正在建立的外部库,然后以静态模式链接到我的最终应用程序。用正确的_WIN32_WINNT重建外部库后,它工作正常! 希望这个主题能帮助像我这样的winnoob:)