• 3824阅读
  • 5回复

[提问]尝试将QtSDK中的mingw换成静态编译的失败? [复制链接]

上一主题 下一主题
离线roywillow
 

只看楼主 倒序阅读 楼主  发表于: 2011-11-30
因为重新静态编译整个Qt实在是太庞大了,并且会出现很多问题和失去很多特性,所以我想试着去掉mingw的mingwm10.dll和libgcc_s_dw2-1.dll两个dll的依赖。
在网上搜索了一会儿,找到了mingw的静态编译版本:http://code.google.com/p/qp-gcc/downloads/detail?name=mingw-static-4.4.5-all.7z
于是备份好QtSDK原来的mingw,清理掉原来里面所有文件,然后将包中的文件解压进mingw文件夹。
但是最后编译一个程序试了一下,发现还是没法摆脱那两个dll的依赖;尝试加上QMAKE_LFLAGS += -static-libgcc之类的也是无效。
是因为这两个dll是Qt库自己就在依赖的……?所以还是要重新编译Qt……?
求解……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ninsun

只看该作者 1楼 发表于: 2011-11-30
必须是因为Qt本身的库依依赖的...
所以,重新编译Qt吧......
离线jdwx

只看该作者 2楼 发表于: 2011-11-30
还是不明白,静态编译到底有什么好处?
dll本身就是减小程序大小的好办法,怎么还要倒退。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线yongjie

只看该作者 3楼 发表于: 2011-11-30
QtSDK就是有奇怪。我试着直接用.a文件,而不是DLL。方法是写一个SHELL脚本,用MADDE执行,直接将libQtrGui.a, libQt4Core写到命令行中。如果在LINUX下,就应该是用静态库了。可是链接出来,还是DLL。不可理解!
离线roywillow

只看该作者 4楼 发表于: 2011-11-30
回 2楼(jdwx) 的帖子
那两个dll本身不是很大,主要是希望能尽量减少文件数量,看上去清爽,对于一些手贱的人来说减少丢失损坏的概率。并且对于很多人来说可能机器里只用一个Qt程序,或者多个Qt程序但是却不知道注册那些dll来减少冗余……

果然我还是放弃吧……之前静态编译过一次,结果睡觉前开始,一觉睡醒了还在忙……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线quser
只看该作者 5楼 发表于: 2011-11-30
我也希望能够静态连接所有的库,就提供一个exe文件. 到哪里都能运行 多爽啊
快速回复
限100 字节
 
上一个 下一个