zoukankan      html  css  js  c++  java
  • 关于编译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的话,基本差不多,命令如下:

    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.。。

  • 相关阅读:
    剑指offer-二维数组中的查找
    TF-IDF(term frequency–inverse document frequency)
    Java实现中文字符串的排序功能
    当前课程
    【R】资源整理
    CentOS相关
    【转】Setting up SDL Extension Libraries on MinGW
    【转】Setting up SDL Extension Libraries on Visual Studio 2010 Ultimate
    【转】Setting up SDL Extension Libraries on Code::Blocks 12.11
    【转】Setting up SDL Extension Libraries on Visual Studio 2019 Community
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2520865.html
Copyright © 2011-2022 走看看