开发者社区> 泳泳啊泳泳> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于编译Qt以及驱动的一点总结吧

简介:
+关注继续查看

通过这几次的折腾,对编译Qt算是有一点的心得吧:

    首先我们编译QT的时候需要面对的是下载源代码,一般情况下我们建议下载qt-everywhere-opensource-src-4.8.2.zip这种形式的源代码。这样编译起来的问题也就很少了。当然如果人品不行的话,还是会出现很多的问题的。

    其次是选择动态编译还是静态编译,默认是动态的,我之前一直打算采用静态编译的,这样分发程序的时候很简单,但是在静态编译的时候出现许多的问题,导致我来来回回编译了几次。

    关于静态编译请参看:这篇文章 文章中是使用vs2010编译的Qt4.8.0版本。如果你刚好也是在windows下面打算采用vs进行编译,这篇文章很不错,但是有一些许多注意的问题。

  •     qt的安装路径,以及以后使用vs建立qt项目的时候,不能有中文,路径中也不能有空格,比如program files之类的路径也是不行的。
  •     删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其改名或剪切到别的位置。如不修改将发生 Perl not found in environment - cannot run syncqt 错误。
  •     一定要修改\mkspecs\win32-msvc2010下的qmake.conf文件,将其中的
    QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-改成QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t
    注意末尾的”-“号区别。如不修改将来如有项目使用wchar_t,qt却编译成wchar_t-,编译会导致连接错误,提示找不到Qwstring;
  •     关于是否需要修改\mkspecs\win32-msvc2010下的qmake.conf文件中的QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG这3处后面的MD,MDd,取决你打算动态还是静态编译,如果是静态编译的话,改为:MT,MTd(最后还要在vs2010中的项目属性中将MD改为MT)。如果是动态编译的话,不要改。
  •     一定要修改src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,将本行替换成return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));(由于word自动排版问题,请各位直接将以上英文部分一次性全复制,其实它们是一行,不要分行复制)。如果你仔细看原来的那行的话,你会发现双引号是错误的,如不修改将出现编译Webkit 时会出现 U1077错误。
  •     关于configure参数的说明,可以到时候输入configure -help自行查看,或者去官网。
  •     编译的时候建议使用-debug-and-release,如果只是单纯的编译debug或者release的时候,可能会出现一些问题。尤其是很容易出现debug调用release的东西或者相反,这种东西很烦人的,所以建议都变异,占用不了多大的空间。
  •     使用-nomake demos -nomake examples -nomake docs选项将加速编译过程,建议在编译qt源码的时候都在configure参数中加上这些,也就是不编译demos和docs和examples文件夹下面的东西,我知道这些是很好的例子,但是我的意思是在你不能确保自己能够一次性编译成功Qt的情况下,加上这些参数,能够为你节省大量的时间,因为万一编译错误的话,你又得重新来编译了。如果你日后想编译demos或者examples的时候,去demos或者examples的目录下,qmake dems.pro或者qmake examples.pro然后nmake就行了。
  • 使用-mp选项可以加速,适合多核用户提高编译速度
  • 千万不要在nmake之后,执行nmake clean,nmake confclean。别相信网上说的那些什么先备份在删除的,再说这些东西占用不了几个空间的。

 

下面说说编译Qt的mysql,oracle驱动吧。安装好oracle或者mysql之后,命令很简单,对于Mysql执行下面的命令(注意修改自己的路径名,最好别有中文和空格):

首先cd到  D:\qt\src\plugins\sqldrivers\mysql
然后qmake INCLUDEPATH+="D:\phpdev\mysql\include" LIBS+="D:\phpdev\mysql\lib\libMySQL.lib" MySQL.pro
最后nmake

  然后在你的D:\qt\plugins\sqldrivers(注意对应你的安装路径)会有8个文件。

对于oracle的话,基本差不多,命令如下:

1
2
3
4
5
set INCLUDE=%INCLUDE%;D:\app\rollen\product\11.2.0\client_1\oci\include
set LIB=%LIB%;D:\app\rollen\product\11.2.0\client_1\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake oci.pro
nmake

也会产生8个文件。如图(由于我的博客模板的问题,图片部分没有显示,其中mysql的文件8个,oracle的8个):大家可以右键,在新标签页查看图片。

然后剩下的就是配置vs2010了,强烈推荐同时配置Vassist。

关于如何配置vs和VAssist的话网上有很多教程,我就不给百度和google这些公司制造去重复的负担了,呵呵。

笔者之前静态编译N次,都遇到了错误,最后没办法,采用动态编译,一次性成功,哈哈。

另外关于mysql和oracle11g的qt驱动,需要的朋友给我邮件,或者评论。

 参考资料:

(原创)亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布

文章跟新

  许多朋友还是不会编译Qt,其实吧,我觉的动态编译没什么不好,而且基本都是一次性成功的。为什么非得搞静态编译。

  另外,许多朋友询问驱动的事情,所以我上传编译好之后的驱动到我的新浪微盘。下载地址:http://vdisk.weibo.com/s/a9JGt

       编译环境:vs2010+Oracle11g/mysql/lited4.。。


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/05/28/2520865.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
带你读《互联网协议第六版 (IPv 6)》第一章概述1.3 IPv6 的发展历史(二)
带你读《互联网协议第六版 (IPv 6)》第一章概述1.3 IPv6 的发展历史
42 0
C#进阶系列——DDD领域驱动设计初探(二):仓储Repository(上)
原文:C#进阶系列——DDD领域驱动设计初探(二):仓储Repository(上) 前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原因无非以下两点:一是Repository的真实意图没有理解清楚,导致设计的紊乱,随着项目的横向和纵向扩展,到最后越来越难维护;二是赶时髦的为了“模式”而“模式”,仓储并非适用于所有项目,这就像没有任何一种架构能解决所有的设计难题一样。
1955 0
关于Qt
什么是Qt Qt是一个针对桌面、嵌入式、移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux、OS X、Windows、VxWorks、QNX、Android、iOS、BlackBerry(黑莓)、Sailfish OS(旗鱼操作系统)等。 Qt 1991年由Trolltech-奇趣科技(成立于1994年)开发,2008年,Trolltech被Nokia收购,
1679 0
[20141212]关于sql_id.txt
[20141212]关于sql_id.txt http://blog.itpub.net/267265/viewspace-1357292/ http://blog.itpub.net/267265/viewspace-1220996/ --昨天别人问一些sql_id计算的问题,实际上我也不懂具体的算法,我给他看了上面的链接。
796 0
关于网站更新速度的一点小心得
        网上看过很多关于网站优化的文章,其中很多都提到了网站的更新问题。大部分的结论是网站更新速度越快越好。
803 0
326
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载