zoukankan      html  css  js  c++  java
  • qt4.8.4安装以及64位程序编译方法

    本文将使用简单的几个步骤说明在vc2008和64位的操作系统下如何编译安装x64Qt软件

    首先必须保证你所使用的系统是64bit的操作系统,本次我们使用的系统是windows7 professional 64位操作系统

     一、下载及安装

     1. 下载,直接找官网下载就可以了,我的是qt-win-opensource-4.8.4-vs2008.exe;安装到D:qt4.8.4目录下!

     2. 设置环境变量:

    我的电脑> 属性> 高级> 环境变量> 用户变量里面设置几个变量:

    创建QTDIR值为 D:Qt4.8.4

    path中增加$QTDIR$in(如果没有就创建)

    创建QMAKESPEC值为 win32-msvc2008,这个值还是根据你要生成的vs版本,6.0 使用win32-msvc;2003 使用win32-msvc.net; 2005就是win32-msvc2005; 2008就是 win32-msvc2008

    最后为了使的你刚才修改的环境变量生效,重启cmd,可以通过c:>qmake -v来看你使用的qt版本。

     3. 点击开始》Microsoft Visual Studio 2008》Visual Studio Tools》VisualStudio 2008 x64 Win64 Command Prompt

    现在开始安装

    首先进入你所在的Qt openresource 所在的文件夹

    例如:D:Qt4.8.4

    D:Qt4.8.4>onfigure -platform win32-msvc2008 -opensource-fast -qt-style-windowsxp -qt-style-windowsvista -no-qt3support -qt-sql-odbc-no-phonon -no-phonon-backend -no-script -no-scripttools -no-multimedia -nomakeexamples -nomake demos

    此时会有一个选项 是选择商业版还是开源版,此处要选择开源版,

    只需输入o 然后回车 此过程时间大概几分钟

    接下来就开始

    D:Qt4.8.4>nmake

    最后这个过程时间较长,需要两三个小时!

    安装

    D:Qt4.8.4> nmakeinstall

     

     

     

    二 编译过程中遇到错误

     

    利用VS2008Qt4.8.4库进行编译,在编译到某个文件时,总是报错,提示VScl.exenmake.exe返回致命错误。错误罗列如下:

     

    ======================================================================

    DefaultLocalizationStrategy.cpp

    platformDefaultLocalizationStrategy.cpp(327) :error C2001: 常量中有换行符

    platformDefaultLocalizationStrategy.cpp(327): fatal error C1057: 宏展开中遇到

    意外的文件结束

    DragData.cpp

    DragImage.cpp

    FileChooser.cpp

    FileStream.cpp

    FileSystem.cpp

    GeolocationService.cpp

    KillRingNone.cpp

    KURL.cpp

    Language.cpp

    Length.cpp

    LinkHash.cpp

    Logging.cpp

    MIMETypeRegistry.cpp

    RuntimeApplicationChecks.cpp

    SchemeRegistry.cpp

    正在生成代码...

    正在编译...

    ScrollableArea.cpp

    ScrollAnimator.cpp

    Scrollbar.cpp

    ScrollbarThemeComposite.cpp

    ScrollView.cpp

    SharedBuffer.cpp

    SharedBufferCRLFLineReader.cpp

    ThreadGlobalData.cpp

    ThreadTimers.cpp

    Timer.cpp

    UUID.cpp

    Widget.cpp

    PlatformStrategies.cpp

    LocalizedStrings.cpp

    Cursor.cpp

    正在生成代码...

    NMAKE : fatal error U1077:“"d:Program FilesMicrosoft Visual Studio 8VCBIN

    cl.EXE"”: 返回代码“0x2”

    Stop.

    NMAKE : fatal error U1077:“"d:Program FilesMicrosoft Visual Studio 8VCBIN

    nmake.exe"”: 返回代码“0x2”

    Stop.

    NMAKE : fatal error U1077: “cd”: 返回代码“0x2”

    Stop.

    NMAKE : fatal error U1077: “cd”: 返回代码“0x2”

    Stop.

    ======================================================================

     

    一直只关注到最后几行的错误提示,其实编译器已经调试到了错误地址,

    platformDefaultLocalizationStrategy.cpp(327) :error C2001: 常量中有换行符

    是一个叫“DefaultLocalizationStrategy.cpp”的文件在325-327行中出现了问题,因此,顺藤摸瓜,

     

    D:Qtqt4.8.4src3rdpartywebkitSourceWebCoreplatformDefaultLocalizationStrategy.cpp中:

           returnformatLocalizedString(WEB_UI_STRING("Look Up “%@”", "Look Upcontext menu item with selected word"), selectedCFString.get());

    #else

       return WEB_UI_STRING("Look Up “<selection>”", "LookUp context menu item with selectedword").replace("<selection>",truncatedStringForLookupMenuItem(selectedString));

       

    正是语句中两边使用了错误的引号,导致了编译不通过。改成:

     

           returnformatLocalizedString(WEB_UI_STRING("Look Up""%@""", "Look Up context menu item with selectedword"), selectedCFString.get());

    #else

       return WEB_UI_STRING("Look Up""<selection>""", "Look Up context menuitem with selected word").replace("<selection>",truncatedStringForLookupMenuItem(selectedString)); 

     

    即可。

    参考:http://blog.csdn.net/wsoar/article/details/6010690

             http://blog.sina.com.cn/s/blog_a66cf8120101jvwf.html

  • 相关阅读:
    SpringBoot自定义HttpMessageConverter
    第一次使用Linux服务器所栽之坑
    入门Nginx
    HttpClient中的Timout
    SpringBoot启动
    SpringBoot注解
    百度2017春招笔试
    学习JUnit
    Mybatis中的@SelectKey注解
    PHP中MD5函数漏洞
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3161362.html
Copyright © 2011-2022 走看看