再议Qt程序在windows下的发布,libgcc_s_dw2-1.dll十分重要

本文记录了一次Qt程序发布过程中的遇到的问题及解决方案。作者在尝试发布动态链接库版本时,遇到图片无法显示和中文乱码的问题。通过查找依赖项并加入特定DLL文件解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   根据网上的资料,发布static版已经成功了,由于我用的的一个dll文件依然依赖qt的核心dll文件,所以编译成static还是需要把qt的几个dll文件打包进去,deploy static版本没啥意义了。今天尝试发布动态链接库版的,结果遇到了了问题。

    程序运行目录下建立了imageformats 和codecs目录,并把相关的plugin dll文件拷贝进去,程序运行依然没法显示jpg图片,中文乱码,显然plugin没起作用,搜遍网络和qt助手,也没能把问题解决。使用了/QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath()+"/plugins");也不见效。

    按照qt助手推荐的Dependency Walker工具查看我的exe文件依赖的dll,没发现问题。使用360safe的进程查看器发现,exe文件还依赖于libgcc_s_dw2-1.dll,从qt的bin目录下把这个文件拷贝过来,程序运行正常了。

   我推测,Qt4.6.0的plugin需要这个dll文件启动。

   类似的资料哪里去查呢?

Step 1 Open the zip-file you downloaded from DLL-files.com . Extract the DLL-file to a location on your computer. If you are unsure about how to extract your zip-file we recommend using File Viewer Plus 2. With it you can open your zip-file as well as over 300 other file formats (like video, music, images, pdf etc.) It’s a handy tool to keep around. After extracting your zip-file, place the extracted DLL-file in the directory of the program that is requesting the file. Make sure to use a 32bit DLL-file for a 32bit program, and a 64bit DLL-file for a 64bit program. Failure to do so will likely result in a 0xc000007b error. Step 2 If that does not help your problem, place the file to your system directory. By default, this is C:\Windows\System (Windows 95/98/Me), C:\WINNT\System32 (Windows NT/2000), or C:\Windows\System32 (Windows XP, Vista, 7, 8, 8.1, 10). On a 64bit version of Windows, the default folder for 32bit DLL-files is C:\Windows\System32\ , and for 64bit dll-files C:\Windows\SysWOW64\ . Make sure to overwrite any existing files (but make a backup copy of the original file). Reboot your computer. Step 3 If the problem still occurs, try the following to register the DLL-file: For 32bit DLL-files on a 32bit Windows, and for 64bit DLL-files on a 64bit Windows: Open an elevated command prompt. To do this, click Start, click All Programs, click Accessories, right-click "Command Prompt", and then click Run as administrator. In Windows 8/10, go to the Start screen. Start typing cmd and Windows will find "Command Prompt". Right click "Command Prompt" and choose "Run as administrator". If you are prompted for an administrator password or for a confirmation, type the password, or click Allow. Type regsvr32 "filename".dll and press Enter. Registering 32bit DLL-files on a 64bit Windows: Open an elevated command prompt, as instructed above. In the command prompt, start by typing following and press enter: cd c:\windows\syswow64\ th
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值