查看完整版本: [-- 在Win10上用QT (qt6.2+MSVC)开发的应用程序在Win7上运行失败 --]

QTCN开发网 -> Qt安装与发布 -> 在Win10上用QT (qt6.2+MSVC)开发的应用程序在Win7上运行失败 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

bergerac 2022-01-15 14:37

在Win10上用QT (qt6.2+MSVC)开发的应用程序在Win7上运行失败


开发环境:Windows 10
开发工具:QT creator (qt6.2+MSVC)
运行环境:Windows  7
问题描述:
         在Win10上用QT (qt6.2+MSVC)开发的应用程序在Win7上运行,弹框报错"无法定位程序输入点CreateDXGIFactory2于动态链接库dxgi.dll上"和"无法定位程序输入点_free_Locale于动态链接库msvcrt.dll上"。用depends.exe查看Win7系统路径下的dxgi.dll,没有找到CreateDXGIFactory2函数,但Win10上的dxgi.dll有这个函数,msvcrt.dll也是同样的情况。
尝试的方案:
         1.我将Win10下的dxgi.dll和msvcrt.dll库拷贝到Win7下的应用程序目录下,错误依然存在,说明程序运行时还是去Win7系统目录下找对应的库了。
         2.原本打算将整个代码工程用MT方式编译,但看到QT WIKI(https://wiki.qt.io/Technical_FAQ)上不建议用MT方式编译。
我的问题是:
         1.在Win10上用QT (qt6.2+MSVC)开发的应用程序是否可以在Win7上运行?
         2.是否有办法能让应用程序运行时去访问指定目录下的系统库,而不是去Win7系统下查找这些库?
         3.是否有其他方法可以解决我的问题?
期待各位高手的答复,先谢谢大家!

liudianwu 2022-01-15 15:25
qt6.2及以后不再支持win7,这个已经吵了一年了,你还没听到消息?

bergerac 2022-01-15 15:45
liudianwu:qt6.2及以后不再支持win7,这个已经吵了一年了,你还没听到消息? (2022-01-15 15:25) 

嗯,Win7上不支持QT6开发,但在Win10上用QT6编译打包好的应用程序是否支持在Win7上运行呢?

mh_0915 2022-01-15 16:55
Qt6版本不支持win7,至于能不能运行,你得看是啥问题,是Qt的接口的问题那就无解了

bergerac 2022-01-15 20:08
mh_0915:Qt6版本不支持win7,至于能不能运行,你得看是啥问题,是Qt的接口的问题那就无解了
 (2022-01-15 16:55) 

是Win10上编译QT6用的msvc编译器所依赖的系统库dxgi.dll和msvcrt.dll里面的某些函数CreateDXGIFactory2和_free_Locale,在Win7运行时找了Win7系统下的dxgi.dll和msvcrt.dll(这些库不包含上面所说的函数),导致运行失败了。不知道有没有办法能让运行程序直接在运行目录下找这些系统库(我拷贝Win10的系统库),而不是去Win7系统路径下找这些库。

apud 2022-01-15 20:44
Qt5.15.2 LTS版是最好的,编译的程序支持WIN7及以上的系统
再往前是Qt5.6.3,最低支持到XP系统,我们只需要保留这两个Qt版本即可。
更高的Qt6版本,其实说白了啥也不是,没明白更新它图什么?图它WIN7打不开然后被用户疯狂吐槽吗?

lixinwei 2022-01-15 22:37
Qt 6.2 完全不支持Win7,既不能在WIN7上编译,也不能在WIN7上运行。请不要做无谓的尝试

fsu0413 2022-01-16 13:00
apud:Qt5.15.2 LTS版是最好的,编译的程序支持WIN7及以上的系统
再往前是Qt5.6.3,最低支持到XP系统,我们只需要保留这两个Qt版本即可。
更高的Qt6版本,其实说白了啥也不是,没明白更新它图什么?图它WIN7打不开然后被用户疯狂吐槽吗? (2022-01-15 20:44) 

与时俱进啊哥们,微软都抛弃xp了,win7也就只剩最后一年付费支持了。
这俩系统最终一定会退市,到时候Qt6就成主流了。

fsu0413 2022-01-16 13:01
bergerac:嗯,Win7上不支持QT6开发,但在Win10上用QT6编译打包好的应用程序是否支持在Win7上运行呢? (2022-01-15 15:45) 

Win7开发早在5.10(好像是吧)就不被官方支持了。

mh_0915 2022-01-17 08:59
bergerac:是Win10上编译QT6用的msvc编译器所依赖的系统库dxgi.dll和msvcrt.dll里面的某些函数CreateDXGIFactory2和_free_Locale,在Win7运行时找了Win7系统下的dxgi.dll和msvcrt.dll(这些库不包含上面所说的函数),导致运行失败了。不知道有没有办法能让运行程序直接在运行目录下找这些 .. (2022-01-15 20:08) 

6楼的回复是对的,不要做无意义的尝试,而且没有必要用这么高版本Qt,不稳定不说,根本就不兼容大多数使用环境,只会搞死自己

apud 2022-01-17 10:43
fsu0413:与时俱进啊哥们,微软都抛弃xp了,win7也就只剩最后一年付费支持了。
这俩系统最终一定会退市,到时候Qt6就成主流了。 (2022-01-16 13:00)

你怕是不知道WIN7用户占比有多少,Qt6不会成为主流,因为等10年以后,WIN7用户渐渐减少,到时候直接入手Qt8它不香吗?

bergerac 2022-01-17 14:02
mh_0915:6楼的回复是对的,不要做无意义的尝试,而且没有必要用这么高版本Qt,不稳定不说,根本就不兼容大多数使用环境,只会搞死自己 (2022-01-17 08:59) 

客户要求用QT6.2,而且开发出来的程序要支持在Win7和Win10上运行,所以只好在Win10上开发,但开发打包的程序在Win7上运行就报上面那种错误了

fsu0413 2022-01-17 16:18
bergerac:客户要求用QT6.2,而且开发出来的程序要支持在Win7和Win10上运行,所以只好在Win10上开发,但开发打包的程序在Win7上运行就报上面那种错误了 (2022-01-17 14:02) 

让你的客户直接跟Qt公司买这样的定制Qt6吧,社区支持可能不会有了。

fsu0413 2022-01-17 16:25
apud:你怕是不知道WIN7用户占比有多少,Qt6不会成为主流,因为等10年以后,WIN7用户渐渐减少,到时候直接入手Qt8它不香吗?
 (2022-01-17 10:43) 

按现在微软对windows产品的态度来说,win10和11最终可能都会走向艰难退市。
等过几年win10 EOL,Qt7发布不支持Win10,可能Qt6一定会成为主流。
版本大升级直接上Qt8等肯定是不现实的。

fsu0413 2022-01-17 16:45
bergerac:客户要求用QT6.2,而且开发出来的程序要支持在Win7和Win10上运行,所以只好在Win10上开发,但开发打包的程序在Win7上运行就报上面那种错误了 (2022-01-17 14:02) 

想到一个方法,就是把整个Qt库使用VC-LTL库作为标准库进行编译。
VC-LTL是一个建立在msvcrt上的接口兼容层,适用于将基于新API写的程序在旧平台上运行的情况。
我没用过这个库,不过看起来可能会满足你的需求,我觉得可以尝试一下。

bergerac 2022-01-20 14:34
fsu0413:想到一个方法,就是把整个Qt库使用VC-LTL库作为标准库进行编译。
VC-LTL是一个建立在msvcrt上的接口兼容层,适用于将基于新API写的程序在旧平台上运行的情况。
我没用过这个库,不过看起来可能会满足你的需求,我觉得可以尝试一下。 (2022-01-17 16:45) 

客户说不需要支持WIN7/8了

fsu0413 2022-01-23 21:08
bergerac:客户说不需要支持WIN7/8了 (2022-01-20 14:34) 

还行

lovecomputer 2022-02-27 22:27
最后怎么解决的?我也是QT打包到windows7运行,我想了N个办法,程序一直无法在win7上运行,总提示缺乏各种dll,都拷贝后,又提示0XC00007b错误,网上查询说这是缺少库,但不知道用哪些库?我的N个方法:
1、用windeploy
2、用process看依赖库,并全部拷贝到执行文件夹
开发方式做了4个组合,均未成功,但在开发机release目录直接运行是可以的
                         win10+QT5.15.2+MinGW32动态库方式
                          win10+QT5.15.2+MSVC2019的32动态库方式
                          win10+QT5.15.2+MSVC2019的32位静态库方式
                          win10+Visual Studio2019QT+MSVC2019的32动态库方式

fsu0413 2022-03-01 06:54
lovecomputer:最后怎么解决的?我也是QT打包到windows7运行,我想了N个办法,程序一直无法在win7上运行,总提示缺乏各种dll,都拷贝后,又提示0XC00007b错误,网上查询说这是缺少库,但不知道用哪些库?我的N个方法:
1、用windeploy
2、用process看依赖库,并全部拷贝到执行文件夹
开发方式做 .. (2022-02-27 22:27) 

运行库有安装版的,叫vcredist啥啥啥的,在VS安装文件夹里就有,是EXE的,里面有全套vcrt和ucrt的运行库,安装完就不会缺了

hcaihao 2022-03-11 12:59
fsu0413:运行库有安装版的,叫vcredist啥啥啥的,在VS安装文件夹里就有,是EXE的,里面有全套vcrt和ucrt的运行库,安装完就不会缺了 (2022-03-01 06:54)

qt5.15.3也遇到同样的情况,7下无法运行,装vc运行库没用,5.15.2一切正常

yanchenyu 2023-03-23 17:35
也不是完全无解,现在大佬们修改后,qt6.2.4已经可以在Win7上运行了。按我理解,你得现在win7上装上qt6.2.4,然后源代码编译过,解决dll自然就支持了。不过这种属于魔改,官方并不推荐。
https://forum.qt.io/topic/133002/qt-creator-6-0-1-and-qt-6-2-2-running-on-windows-7/17

bergerac 2024-01-19 09:00
yanchenyu:也不是完全无解,现在大佬们修改后,qt6.2.4已经可以在Win7上运行了。按我理解,你得现在win7上装上qt6.2.4,然后源代码编译过,解决dll自然就支持了。不过这种属于魔改,官方并不推荐。
https://forum.qt.io/topic/133002/qt-creator-6-0-1-and-qt-6-2-2-running-on-windows-7/17 (2023-03-23 17:35) 

客户愿意放弃win7/8了,直接让我们升QT6.2,只要支持win10就好

bergerac 2024-01-19 09:00
lovecomputer:最后怎么解决的?我也是QT打包到windows7运行,我想了N个办法,程序一直无法在win7上运行,总提示缺乏各种dll,都拷贝后,又提示0XC00007b错误,网上查询说这是缺少库,但不知道用哪些库?我的N个方法:
1、用windeploy
2、用process看依赖库,并全部拷贝到执行文件夹
开发方式做 .. (2022-02-27 22:27) 

没解决,说服客户放弃win7/8了,我们升QT6.2,只支持win10就好了

zonznews 2024-01-26 16:51
Qt 5.6.3 我支持这个版本
很棒
哈哈


查看完整版本: [-- 在Win10上用QT (qt6.2+MSVC)开发的应用程序在Win7上运行失败 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled