vs编译qt
Ⅰ vs不能编译qt
1. 建立环境变量
QMAKESPEC win32-msvc2011 // 注意
QTDIR S:\QT\4.8.4 // Qt的安装目录
Path S:\QT\4.8.4\bin;
注意: QMAKESPEC 还是 win32-msvc2011 因为如果要改成win32-msvc2012,需要改很多相关的配置。又麻烦又不安全。而且使用win32-msvc2011并不影响我们的结果。
2. 修改 mkspecs\win32-msvc2011\qmake.conf
将 QMAKE_COMPILER_DEFINES += _MSC_VER=1600 WIN32 当中的1600改成1700
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
改为
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
3. 在开始菜单中找到 VS2012 x86 Native Tools Command Prompt 并运行
这一步非常简单但很重要,一定要选择VS2012目录下的bat文件
4. 在控制台中,切换到Qt的安装目录下。使用如下参数进行配置
configure.exe -platform win32-msvc2011 -opensource -debug-and-release -shared -qt-sql-sqlite -plugin-sql-sqlite -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qmake -process -rtti -dbus -webkit -script -scripttools -no-dbus
5. nmake 开始编译。 不过在编译过程中会遇到几个错需要手动修改一下代码。
6. 第一个错误如下:
.\wtf/HashSet.h(180) : error C2664: 'std::pair::pair(const std::pair &)' : cannot convert parameter 1 from 'std::pair' to 'const std::pair &'
在Qt的Src目录搜索这个HashSet.h
将180行所在的函数以及它下面的函数用下面的代码替换:
template
inline pair<typename HashSet::const_iterator, bool> HashSet::add(const ValueType &value)
{
auto p= m_impl.add(value);
return make_pair(typename HashSet::const_iterator(p.first), p.second);
}
template
template
inline pair<typename HashSet::iterator, bool>
HashSet::add(const T& value)
{
typedef HashSetTranslatorAdapter Adapter;
typedef typename HashSet::iterator iter_type;
auto& temp = m_impl.template addPassingHashCode(value, value);
return make_pair((iter_type)temp.first, temp.second);
}
7. 继续 nmake遇到第二个错误
platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion
这个错误的原因是因为代码里面的非英文的引号造成的。
原始的错误代码如下:
return WEB_UI_STRING("Look Up “”", "Look Up context menu item with selected word").replace("", (selectedString));
大家注意 单词前后的引号。就是它造成编译报错。修改成下面的代码
return WEB_UI_STRING("Look Up \"\"", "Look Up context menu item with selected word").replace("", (selectedString));
8. 再次nmake,好了到这里为止,就剩下漫长的等待了。我一般是睡觉之前编译,一晚上的时间足够了。
9. 补充,有个开源工具叫jom,也是qt官方的,它支持多核编译,可以大大加快编译速度。
使用的方法也很简单jom –j 8 你有几个核就写几。我是8个核
注意最后两个DLL是VS2012的运行时库,说明我们已经编译成功了!
Ⅱ qt 5.4 为什么用vs 编译
编译器编译程序,基本上都工作于命令行下,而 IDE 调用编译器进行编译。IDE 一般都包含编译器(如 VS)。
一般,不推荐初学者用 IDE。IDE 虽然很方便,但也会掩盖很多过程和细节,这对学习是有害的。
Ⅲ vs2010编译QT4.8.6,designer.exe、assistant.exe无法运行
认真核对操作步骤:
1、修改环境变量工具推荐:Rapid Environment Editor。
修改前请先备份当前的环境变量。然后:
(1)检查系统变量path,删除有关mingw其他版本等信息,以免与后续的mingw32-make冲突。
(2)检查用户变量INCLUDE、LIB、PATH、MSDevDir和MSVCDir,删除有关\Microsoft Visual Studio\VC98的信息,因为它们会与后续的mingw32-make冲突,导致编译出错。
2、在电脑上安装mingw编译器,假设路径安装在C:\Qt\mingw32。将C:\Qt\mingw32\bin添加进环境变量path,打开DOS命令行输入gcc --version和g++ --version和mingw32-make --version验证编译器安装成功。我用的MinGW版本是V4.8.2,
3、解压qt-everywhere-opensource-src-4.8.6.zip并进入目录。例如:D:\qt-everywhere-opensource-src-4.8.6\
4、依次执行以下DOS命令:
(1)configure -debug-and-release -opensource -prefix "D:\Qt4.8.6" -platform win32-g++ -nomake demos -nomake examples
常见的使用选项说明:
-debug-and-release 编译debug和release版
-opensource 选择开源协议并确认
-platform win32-g++ 使用mingw编译
-prefix "D:\Qt4.8.6" 指定编译结果目录,如果未指定则默认当前
-shared 创建和使用共享Qt库
-static 创建和使用静态Qt库
-nomake demos -nomake examples 不编译例程
-nomake tests 不编译tests
-skip qtwebkit 忽略qtwebkit,因为编译它特别消耗时间
-mp 使用多核优化编译
(2)mingw32-make
(3)mingw32-make install
5、编译完成后,把C:\Qt\mingw32\bin\路径下的三个文件libgcc_s_dw2-1.dll、libstdc++-6.dll和libwinpthread-1.dll拷贝到D:\qt-everywhere-opensource-src-4.8.6\bin\。另外,也请把步骤1备份的环境变量还原。
6、修改Qt安装路径
最初编译时选择的路径是D:\Qt4.8.6\。如果想将它复制到其他盘符,并且改名,例如:C:\Qt\4.8.6_MinGW。这样一来会有问题吗?是的,会有问题,因为Qt有绝对路径依赖症。改名后C:\Qt\4.8.6_MinGW\bin\的exe执行程序都会出问题,要么程序打不开,要么多国语言发生异常。用记事本打开C:\Qt\4.8.6_MinGW\bin\qmake.exe,查找关键字“qt_prfxpath”,可以看到里面含有原始的安装路径。我们不可以手动去修改qmake.exe,真正有效的解决方法是:
在C:\Qt\4.8.6_MinGW\bin\路径下创建一个qt.conf文件,内容为
[paths]
Prefix = C:/Qt/4.8.6_MinGW
请注意:qt.conf文件必须是ANSI格式,并且Prefix的斜杠风格采取的是Linux的,而非Windows,否则会失效。或者使用"Prefix = .. ",如此一来,任意路径有效。
Ⅳ 如何用VS2010编译Qt5.3.2
如何用VS2010编译Qt5.3.2
<env:Envelope xmlns:env="服务器会接收一个像 清单 1 所示的以 XML 编码的请求,解析这个 XML,执行相应的服务对象方法,然后返回一个如 清单 2 所示的以XML编码的响应到请求客户端。客户端通常能够解析和响应这个SOAP,并将它转换成一个特定语言的对象或数据结构以作进一步处理。您可以选择使用一个WSDL文件告诉客户端关于可用函数的信息,以及输入参数和返回值的个数和数据类型。
Zend Framework具SOAP客户端和服务器的实现,同时支持自动生WSDL文件。服务器和客户端实现在PHP中封装了SOAP扩展;这意味着如果PHP没有包含SOAP扩展支持,那么它们将无法生效。这样,使用带有原生扩展的Zend Framework库大大简化了开发过程,因为开发人员只需要定义一组实现服务API的对象,并将它们附加到服务器以便处理到达的请求。下面的各部分将详细讨论这个方面。
Ⅳ qt5.5怎么编译 vs2013调试
1、VS2013
这个不消我不多说,微软有名的集成开发环境,凡是编过程的朋友都知道怎么下载安装。
2、qt5.5.1安装包
包含相应的Qt库和Qt集成开发环境(即QtCreater)。
3、qt vs插件
为了帮助在VS中创建Qt项目,并对其进行调试编译。
注意,由于目前Qt已经分为多个版本,有些商业版本需要向开发者收费,而另一些开源版则是免费提供,故而在下载前,会有好几个问题让大家回答。由于某些朋友英文学得不是太好,在接下来的步骤中,我会一一向大家解释回答的要领。
下载方法:
首先,打开如图所示的网址,下载相应的Qt安装包。在下载界面,第一个问题是让你选择下载的Qt版本,由于我们需要下载的是免费版本,故而在此选择社区版。
注意,商业版是要收费的,价格我猜大多数初学编程的人都难以承受。
第二个问题是你想使你的产品受到保护吗。也就是,代码保密,不开源。如果代码不开源,那就是商业版的范畴,因此我们在此选择不。
第三个问题是程序如何链接到Qt库,在此选择静态链接,这样生成的程序体积会大点。不然,写一个程序就让程序带着Qt库文件到处跑,确定蛮烦人的。
5
第四个问题是你准备让你的程序代码开源吗?选择是。虽然一百个不愿意开源,可是不开源就要出钱买商业版,没办法。
Ⅵ qt creator怎么配置vs2013编译器
1、Linux下Qt Creator的配置
从Dash中找到Qt Creator,打开,打开后可以看到主界面,这个界面和Windows下基本一致(后面安装windows版本就清楚了),在前面的两篇文章中我已经分别编译了Linux下的X86平台和ARM平台的QT库,这部分就针对这个IDE进行相应的配置,是能够进行应用程序的开发。
在主界面中从菜单栏点击"工具"->"选项"->在左侧点击“构建和运行”界面如下图所示。
从图中可以看到,IDE并没有自动识别安装的QT,这是因为在缺乏系统环境变量的情况下,不知道程序安装到了什么地方,所以这里需要手动设置,手动设置很简单,只需要点击添加,分别添加编译的两个版本的QT安装文件中的qmake文件即可,注意是安装文件,并不是之前解压的源文件。
默认的安装路径为/usr/local/Trolltech这个文件夹下有两个文件夹,具体路径可以参见上图。
到这里就告诉IDE 安装QT的位置了,由于需要进行编译开发,接下来还需要指定编译器,点击“编译器”选项卡,如下图所示。
如图中所示,Qt Creator已经检测到X86的GCC,而我们要是做arm平台开发的话还需要指定用于arm开发的交叉工具链,我的安装路径为/usr/local/arm/4.3.2/bin/需要指定g++文件,如图中所示。配置完成后,点击“应用”。
QT和编译器指定完成后就需要进行下一步配置了,就是对这些工具进行组合,点击“构建套件(kit)”选项卡,如下图所示。
如上图所示,这里所做的设置也很简单,相当于是设定几种方案,指定设备类型、所用的编译器版本以及QT版本,我这里配置桌面和ARM两项,分别对应在PC和开发板两个平台。
到这里,基本配置就完成了。
2、使用Qt Creator进行初步开发
下面新建一个项目,点击菜单 ”文件“->”新建“,如下图所示,选择应用程序-Qt Gui应用
接下来填写项目名称和选择保存位置,点击”下一步“选择构建套件,这里用于选择使用的构建套件,即上文配置的,按照上文配置我这里就有两个套件,桌面和ARM,这个地方后面是可以更改的,因此我这里还是先选择桌面,下面有对应的Debug与Release这里保持默认。接下来全部保持默认一直到完成。
工程新建完成后就可以看到工程目录即文件了,如下图所示。
第一个例程就不添加啥程序了,充分利用IDE设计的方便之处,拖拽几个控件运行示意一下吧,双击上图中的界面文件下的mianwindow.ui文件,接下来就能看到和VS下利用C#等开发非常类似的界面,可以从左侧选择一些控件,右下角可以针对具体的控件属性进行修改,如下图所示,拖出自己需要的控件,并进行简单修改。
我这里拖了几个作为示意,这部分弄好后,点击左下角的
直接运行,构建完成后就会弹出刚刚设计的界面,如下图所示。
可以看到实际运行效果和编辑的情况由于字体等因素略有差异。接下来就要生成一个能够在开发板上运行的程序了,由于刚刚在新建项目的时候构建套件选择的是桌面,所以首先要对这点进行更改。如下图所示,点击 ”项目“--”添加构建套件“下方就会弹出我刚刚设定的ARM,在arm的构建设置中可以使用默认配置,其他相关选项可以参考桌面选项更改。
需要说明的是在ARM的运行项目中,需要部署到远程运行,这里没有部署,因此在剪辑编辑进行构建的时候,就不能改直接运行了,点击锤子图标,进行构建,构建完成后可以在工程文件夹下,如下图所示,那么在ARM开发板上运行的程序就在test1-build-ARM-_____Debug文件夹下。
接下来把生成的可执行文件拷贝到开发板进行运行,我这里使用的是nfs挂载的方式,通过超级终端运行
./test1 –qws
运行程序,需要说明的是我使用的开发板是飞凌的OK6410,上面已经移植好了QTE 4.7.3,虽然我的版本是4.8.4但是运行没有问题,其他平台需要先移植QT,这个暂时不在本文的讨论范围之内,运行效果如下:
到这里,用于开发板运行的第一个小程序就跑起来了。
3、Windows下Qt的安装
Linux下的安装和配置搞定了,Windows下的就非常简单了,Windows下有针对VS2008/2010以及Mingw的版本,虽然我电脑里装了VS2010,这里还是决定安装Mingw的版本,首先下载相关文件,下载地址:
http://qt-project.org/downloads
需要说明的是,早期有SDK安装包的,现在都是单独的了,所以需要分别下载
qt-win-opensource-4.8.4-mingw.exe
qt-creator-windows-opensource-2.6.1.exe
MinGW-gcc440_1.zip 下载地址http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip
如果想在VS中使用可以下载
qt-vs-addin-1.1.11.exe
qt-win-opensource-4.8.4-vs2010.exe
由于Mingw并没有被qt-win-opensource-4.8.4-mingw.exe安装包集成,所以需要先安装mingw,安装很简单,直接解压到指定的目录就行,我的路径d:/mingw。
接下来安装qt-win-opensource-4.8.4-mingw.exe,按照过程中会要求指定mingw,指定刚刚的解压目录即可。
然后安装qt-creator-windows-opensource-2.6.1.exe,这个不用多说了。
安装完成后打开Qt Creator,通Linux下的设置一样,打开设置,这里只需要指定mingw的目录即可,同样指定到g++工具,如下图所示,可以看到两者界面几乎一样,下面的操作就基本一致了,只是这里没有配置用于arm平台的工具链。
Ⅶ vs不能编译qt
1. 下载qt的安装包和vs2011的qt插件,大家可以到下面的地址进行下载
BBS:
官网:
本人是在BBS上找到的,官网上没仔细去找了(英文太多)。
2. 安装qt sdk
安装其实很简单了,基本上一路回车即可,主要是要注意下qt的安装路径最好安装在全英文路径而且中间没有空格, 安装好后,可以运行开始菜单里面的qt demo,直观感受下qt的强大功能!
界面非常炫酷
4. 编译qt
qt默认使用mingw进行编译,如果要使用vs2011开发,需要将qt重新编译。
进
入开始菜单microsoft visual studio 2011,visual studio tools,visual studio
command prompt (2011),需要注意的是,这里面必须是使用visual studio command prompt
(2011),不能使用cmd的dos窗口
进入qt的安装目录后,执行cd qt,进入qt的根目录
运行命令 configure -platform win32-msvc2011,o(选择opensource模式)回车,y(同意license)回车
k1988插入:
在编译过程中,为了加快速度,可以对configure适当的加些参数,比如-fast,-no-webkit(这个貌似挺耗时的)
我
选择的命令行:configure -platform win32-msvc2011 -fast -debug-and-release
-no-webkit -no-script -no-qt3support -nomake demos -nomake examples
-nomake tools -mp
其中:mp是多线程编译选项。
接着就会自动配置qt的编译环境,等配置结束后,运行nmake,回车,qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上。
liuyu遇到的问题:(自己遇到过,当时没记录下来,但是记得编译过程中遇到这些问题)
1.DefaultLocalizationStrategy.cpp
C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/INCLUDE/yvals.h(21) : war
ning C4005: ‘_HAS_TR1’ : macro redefinition
command-line arguments : see previous definition of ‘_HAS_TR1’
platform/DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform/DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected en
d of file in macro expansion
NMAKE : fatal error U1077: ‘“C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/cl.EXE”’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘“C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/nmake.exe”’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘cd’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘cd’ : return code ‘0x2’
Stop.
解决办法:
打开文件…/Qt4.8.5/src/3rdparty/webkit/Source/WebCore
/platform/DefaultLocalizationStrategy.cpp
找到327行删除的引号“”
2.NMAKE:fatal error U1077. return code 0x2
产生原因:找不到代码文件中包含的头文件
解决办法:cmd下进入到vs安装路径/VC/Bin下,执行vcvars32,此时会执行vcvas32.bat自动为vs设置环境变量 (这个也试过好几回,没效果,依然出现上面错误)试试下面的就解决了:
经分析,是环境变量设置的CURR_DIR和TARGETDIR值中含有空格导致了此问题。
通过下面的命令删除环境变量即可。
在d:/Qt/4.8.6目录下键入下面的命令即可(不是很明白)
接着继续nmake命令 回车换行
k1988插入:(本人未找到以下文件)
请先删除
src/3rdparty/webkit/webcore/tmp/moc/debug_shared/mocinclude.tmp
src/3rdparty/webkit/webcore/tmp/moc/release_shared/mocinclude.tmp
/src/script/tmp/moc/debug_shared/mocinclude.tmp
/src/script/tmp/moc/release_shared/mocinclude.tmp
等文件,否则编译有可能失败。
k1988插入:
这一步很重要,关系到是否能用qt-vs-addin。
把d:/qt/bin下的.qmake.cache和configure.cache这两个文件手动备份到另一个地方。
(本人未尝试过)然后使用nmake clean进行清理掉那些中间文件(pdb,obj等文件),清理出4个g左右的空间。
nmake confclean是清理配制文件,占的空间不大,可以不执行了。这个时候再把刚备份的.qmake.cache和configure.cache拷回原处。
5.配置vs2011的qt开发环境(vs2011最好是英文版本,qt对vs2011中文版本可能支持的不好)
等qt编译好后就可以配置vs2011的开发环境了,进入vs2011,选择qt菜单,qt option,进入下图界面
k1988插入:
按
步骤编译好了,用qt助手paths加进去,不知为何ok键不亮, 红字提示:qt in the given path built using
mingw 这个是qt插件的bug,得手工改注册表 hkey_current_user/software/trolltech/versions/
下增加一个子项 qt486(需要的名称) 子项下面增加一个数值 installdir,值就是你要配置的qt路径
ps:如果没有versions这个文件夹就新建一个吧!
(这里确实是个坑,仅仅修改注册表居然没有用,还要去qt的lib文件夹下删掉两个文件 –>>删除qt的lib目录下(我的路径是D:/Qt/4.8.6/lib)的libqtmain.a and libqtmaind.a 两个文件。)
点击add,添加qt的安装目录,并取名字,我这里使用qt的4.8.6版本为名称,选择ok后即可。
6.新建或者导入qt项目
可以通过在vs2011新建一个qt项目
Ⅷ VS编译Qt有什么用
Qt是一个跨平台且功能强大的C++库,在VS下编译Qt是为了能够在windows使用VS方便地开发Qt程序。至于Qt Creator,这个集成开发环境与VS相比,自然是小乌见大乌了。