• 7268阅读
  • 18回复

 为什么官方不出编译好的QT版本?? [复制链接]

上一主题 下一主题
离线guokw
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-10
为什么要广大网友去编译呀,为什么官方不出一个???

会英文的朋友到官方发贴子吧,这样也许就有官方的开源版本编译好的了
离线dbzhang800

只看该作者 1楼 发表于: 2009-08-10
晕,官方不是一直都提供编译好的版本下载吗??
离线zzh

只看该作者 2楼 发表于: 2009-08-11
官方的编译版本只能在本机上使用,如果把编译好的程序和相关DLL还有资源文件放另一个机器上,除了GUI外,什么都做不了。
简单的说,我机器上安装开发环境,编译后的程序运行一切良好,把主程序和对应的DLL还有资源文件等需要的东西放另一个同系统的机器上,只能显示一个图形界面,点界面上的任何按钮都不管用。(相同的操作系统,只是一个安装了开发环境,另一个没有)
只能自己下载QT源代码自己编译开发环境,这样编译出来的程序可以在别的机器上运行。以前在这里发布过帖子,回答也就是自己找程序需要的额外的DLL,我觉得这样发布程序更加麻烦,还不如自己编译开发环境呢。
离线dbzhang800

只看该作者 3楼 发表于: 2009-08-11
楼上说的这种问题和是不是自己编译的关系应该不大吧
离线yj_yulin

只看该作者 4楼 发表于: 2009-08-11
众口难调啊,还是代码包实在,虽然对初学者增加了点难度。
其实在win上已经有个编译好的版本啦。
在unix like的系统上,还是传统的代码包让人省心些。
离线jorneyr

只看该作者 5楼 发表于: 2009-08-11
引用第2楼zzh于2009-08-11 08:09发表的  :
官方的编译版本只能在本机上使用,如果把编译好的程序和相关DLL还有资源文件放另一个机器上,除了GUI外,什么都做不了。
简单的说,我机器上安装开发环境,编译后的程序运行一切良好,把主程序和对应的DLL还有资源文件等需要的东西放另一个同系统的机器上,只能显示一个图形界面,点界面上的任何按钮都不管用。(相同的操作系统,只是一个安装了开发环境,另一个没有)
只能自己下载QT源代码自己编译开发环境,这样编译出来的程序可以在别的机器上运行。以前在这里发布过帖子,回答也就是自己找程序需要的额外的DLL,我觉得这样发布程序更加麻烦,还不如自己编译开发环境呢。

这个结论不知道你从哪得来的. 我使用官方编译安装版的qt sdk, 从来没遇到过问题, 程序已经在不同的机器上运行得很好. 而且是在Mac上编写, Windows编译, 分发给其他机器使用.
离线lqglaive
只看该作者 6楼 发表于: 2009-08-11
没碰到过LZ所说的情况
离线zzh

只看该作者 7楼 发表于: 2009-08-11
我家机器是xp sp3 单位的机器也是xp sp3 除了硬件配置不同,软件配置是一致的,就连打补丁的数量都一样,我在家编译好的程序,拿到单位就不能用,只显示一个图形界面,我拿到别人的机器上也一样能运行,但点界面上的任何按钮都没用,我已经把程序需要的DLL和资源文件都放在一起了,所以,我用qt 4.5.2源代码和 mingw重新编译QT开发环境,这样编译出来的程序,在哪个系统上都可以运行,楼上说没遇见这种情况的,你用什么编译器?难道是vs???
离线浪漫天使
只看该作者 8楼 发表于: 2009-08-11
只显示一个图形界面,。。。。但点界面上的任何按钮都没用
。。。。。。。。。。。。。。。。。。。。。。。。。。
见鬼了,除非你的按钮本来就没用。
方便把这么灵异的代码上传给大家体验一下么?
离线zzh

只看该作者 9楼 发表于: 2009-08-11
jiaofei.7z (16 K) 下载次数:11
附件就是源代码,自己尝试编译吧
离线zzh

只看该作者 10楼 发表于: 2009-08-11
用官方提供的已编译好的QT开发环境和mingw编译,在本机上能正常运行,放在其他系统上只能显示界面,按钮没反应。我的系统是XP SP3,单位机器有的是XP SP3(补丁全打)还有XP SP2,没有QT开发环境,都不能正常运行。
下载QT源代码,用mingw重新编译QT开发环境,再次编译程序,然后把它放哪里都可以正常运行。即使是xp sp3编译,放在vista上也照样能运行。


拷贝程序的时候,我已经把相关DLL和数据库文件放在一起了
离线dbzhang800

只看该作者 11楼 发表于: 2009-08-11
试过楼主的例子了,没发现楼主所说的情况。
编译环境 qt sdk 2009.02
系统环境 windows xp sp3, windows xp sp2
离线80437
只看该作者 12楼 发表于: 2009-08-11
引用第7楼zzh于2009-08-11 13:31发表的  :
我家机器是xp sp3 单位的机器也是xp sp3 除了硬件配置不同,软件配置是一致的,就连打补丁的数量都一样,我在家编译好的程序,拿到单位就不能用,只显示一个图形界面,我拿到别人的机器上也一样能运行,但点界面上的任何按钮都没用,我已经把程序需要的DLL和资源文件都放在一起了,所以,我用qt 4.5.2源代码和 mingw重新编译QT开发环境,这样编译出来的程序,在哪个系统上都可以运行,楼上说没遇见这种情况的,你用什么编译器?难道是vs???


如果这样的话, 谁还用QT开发软件啊.
离线zzh

只看该作者 13楼 发表于: 2009-08-12
引用第11楼dbzhang800于2009-08-11 20:47发表的  :
试过楼主的例子了,没发现楼主所说的情况。
编译环境 qt sdk 2009.02
系统环境 windows xp sp3, windows xp sp2

不会吧,我在家,在单位的机器都试过,难道你装的XP是正版???
离线浪漫天使
只看该作者 14楼 发表于: 2009-08-12
从代码分析
你要链接数据库成功了那个ok才是真 你才会弹出打开文件的对话框

所以说不是没有反应 而是ok 不为真,当然就没有反应了。
原因就是你链接数据库不成功

所以应该是你没有把plugins\sqldrivers目录下面的数据库驱动copy过去,
试试copy过去看看吧
离线浪漫天使
只看该作者 15楼 发表于: 2009-08-12
再罗索一下,从程序设计角度
if(ok)
{
.........
}
else
     QMessageBox::information(this,"debug","connect database error");//提示一下

想表达的意思就是 ok为真怎么处理我不管
但是不为真也应该给人适当的消息框提示吧?

还有就是建议你尽量不要在代码里面直接写中文,
这样跨平台时候就很麻烦了,不同平台的汉字编码未必都一样,
而是采用qt提供的国际化的方案。
离线jorneyr

只看该作者 16楼 发表于: 2009-08-12
"还有就是建议你尽量不要在代码里面直接写中文,
这样跨平台时候就很麻烦了,不同平台的汉字编码未必都一样,
而是采用qt提供的国际化的方案。"
这个问题很好解决, 直接使用utf-8编码就可以了QTextCodec::setCodecFor...
离线浪漫天使
只看该作者 17楼 发表于: 2009-08-12
在某些嵌入式的平台上
QTextCodec * codecForName("utf8");
的返回值是一个空值,
想表达的意思就是 setCodecFor 了未必那个codec对应的名字在你的平台上就有。
离线zzh

只看该作者 18楼 发表于: 2009-08-12
非常感谢楼上几位高手给的解决方案,我今晚就试试,至于在代码里使用中文,我觉得,QT提供的解决方案很好,不过,我只是业余爱好,并不是真正的程序员,我在单位是负责员工保险和集体户口,跟电脑一点关系都没有,所以,学QT只是玩玩。
快速回复
限100 字节
 
上一个 下一个