Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1639293
  • 博文数量: 584
  • 博客积分: 13857
  • 博客等级: 上将
  • 技术积分: 11883
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 09:34

分类: C/C++

2011-04-10 15:19:20

   根据网上的资料,发布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文件启动。

   类似的资料哪里去查呢?

 

qt自带的Mingw中gcc编译器使用的共享方式编译的,--enable-shared,所以任何使用此编译器编译器编译出来的程序都要加上这个库。可以自已重新编译一个gcc编译器。配置为 ../../src/gcc-4.4.3/configure --prefix=/mingw --enable-languages=c,c++,objc,obj- c++ --disable-sjlj-exceptions --disable-shared --enable-libgcj --enable-libgomp - -with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enable-version- specific-runtime-libs --build=mingw32 --with-pkgversion='MinGW 4.4.3'
阅读(2951) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~