qt4.8.4安装以及64位程序编译方法
本文将使用简单的几个步骤说明在vc2008和64位的操作系统下如何编译安装x64Qt软件
首先必须保证你所使用的系统是64bit的操作系统,本次我们使用的系统是windows7 professional 64位操作系统
一、下载及安装
1. 下载,直接找官网下载就可以了,我的是qt-win-opensource-4.8.4-vs2008.exe;安装到D:\qt\4.8.4目录下!
2. 设置环境变量:
我的电脑> 属性> 高级> 环境变量> 用户变量里面设置几个变量:
创建QTDIR值为 D:\Qt\4.8.4
path中增加$QTDIR$\bin(如果没有就创建)
创建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:\Qt\4.8.4
D:\Qt\4.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:\Qt\4.8.4>nmake
最后这个过程时间较长,需要两三个小时!
安装
D:\Qt\4.8.4> nmakeinstall
二 编译过程中遇到错误
利用VS2008对Qt4.8.4库进行编译,在编译到某个文件时,总是报错,提示VS的cl.exe和nmake.exe返回致命错误。错误罗列如下:
======================================================================
DefaultLocalizationStrategy.cpp
platform\DefaultLocalizationStrategy.cpp(327) :error C2001: 常量中有换行符
platform\DefaultLocalizationStrategy.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 Files\Microsoft Visual Studio 8\VC\BIN\
cl.EXE"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077:“"d:\Program Files\Microsoft Visual Studio 8\VC\BIN\
nmake.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
======================================================================
一直只关注到最后几行的错误提示,其实编译器已经调试到了错误地址,
platform\DefaultLocalizationStrategy.cpp(327) :error C2001: 常量中有换行符
是一个叫“DefaultLocalizationStrategy.cpp”的文件在325-327行中出现了问题,因此,顺藤摸瓜,
在D:\Qt\qt4.8.4\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.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
qt4.8.4安装以及64位程序编译方法的更多相关文章
- Linux:使用rpcgen实现64位程序调用32位库函数
摘要:本文介绍使用rpcgent实现64位程序调用32位库函数的方法,并给出样例代码. 我的问题 我的程序运行在64位Linux系统上,需要使用一个从外部获得的共享库中的函数,这个共享库是32位的,无 ...
- ubuntu16 64位 编译64位程序和32位程序
安装了ubuntu16 64位的系统,想在该环境下用gcc编译64位和32位的程序 默认已经安装了64位环境的gcc 1. 首先确认安装的环境是不是64位的 cocoa@cocoaUKlyn:~/De ...
- Linux:32/64位程序(应用程序、共享库、内核模块)
摘要: Linux系统区分32/64位,相应地,应用程序.共享库和内核模块也区分32/64位. 本文以Ubuntu系统为例,介绍如何编译和使用32/64位的应用程序.共享库和内核模块. 1. 应用程序 ...
- Centos6.5 安装 Oracle11gR2(64位)
Centos6.5安装 Oracle11gR2(64位) 安装centos6.5 (我的是虚拟机环境) 1. 下载centos6.5的安装包,不解释. 例如以下图: 2. 下载oracle安装包, ...
- 如何在linux 32位机器编译64位程序
编译64位程序,不一定要编译机器是64位的,但是32位机器默认安装的gcc编译环境还是不能用来编译64位程序. 编译64位程序,需要加上-m64编译器参数,默认安装的gcc已经支持该参数,但是缺少64 ...
- 64位程序,long*转long 出错
原因: long*在64位程序中占8个字节,long占4个字节.强转会出错. 解决方法: 把long用long long替换,long long 占8个字节
- 64位程序调用32DLL解决方案
最近做一个.NETCore项目,需要调用以前用VB6写的老程序,原本想重写,但由于其调用了大量32DLL,重写后还需要编译为32位才能运行,于是干脆把老代码整个封装为32DLL,然后准备在64位程序中 ...
- VMware虚拟机下如何安装一个64位的win7系统
原文地址:http://www.xitongcheng.com/jiaocheng/win7_article_21001.html VMware虚拟机软件可以在一台电脑上运行多个操作系统,一些网友想在 ...
- ThinkPad X260 UEFI安装 win7 64位 方法
ThinkPad X260 UEFI安装 win7 64位 方法 1.使用DG重新格式化硬盘,格式为GPT 2.使用CGI 安装 WIM文件 (image不知是否可以,下次测试) 3.改BIOS ...
随机推荐
- Junit技巧
测试套件: @RunWith(Suite.class) @Suite.SuiteClasses({TaskTest1.class, TaskTest2.class, TaskTest3.class}) ...
- oracle正则表达式regexp_like的用法详解
oracle正则表达式regexp_like的用法详解 /*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与IN ...
- 【译】浅谈微软OneNote的自动化测试工具
当我们向人们介绍OneNote的自动化时,有一个问题被相当频繁地提到,担忧我们的自动化框架中UI层面测试偏少. 我不喜欢基于UI的自动化.我知道在市场上有许多的自动化系统都是基于UI的自动化(点击按钮 ...
- shell 学习笔记1501-1800
.巧用bash的{}扩展备份目录: cp file.txt{,.bak} .利用at执行一次性命令: echo "ls -l" | at midnight #Execute a c ...
- brief InformationTechnology theory of evolution
信息技术进化论简述 无文化流氓帮帮主Ruiy Pk 清华土匪帮帮主YiC 1,按人机交互方式 命令行-->图形界面-->自然交互(语音+手控) Tips:命令行(IBM大型机,小型机+ S ...
- C语言数据结构----栈的应用(程序的符号匹配检测)
本节主要讲利用栈来实现一个程序中的成对出现的符号的检测,完成一个类似编译器的符号检测的功能,采用的是链式栈. 一.问题的提出以及解决方法 1.假定有下面一段程序: #include <stdio ...
- saiku中过滤窗口优化及隐藏异常报错
问题一:当取消自动查询后,点击该维度应弹出过滤条件窗口,实际无反应,只有执行一次查询后再点击该维度,才能弹出过滤条件窗口 解决办法:打开WorkspaceDropZone.js文件,找到selecti ...
- JavaScript引用类型之Array数组的排序方法
数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下: 1.reverse() 用于反转数组项的顺序,代码如下: <sc ...
- android退出activity的方式总结(一)
在android中使用:[activityname].this.finish(); 只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以 ...
- HDU 5584 LCM Walk(数学题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584 题意:(x, y)经过一次操作可以变成(x+z, y)或(x, y+z)现在给你个点(ex, e ...