导航:首页 > 源码编译 > 提高qt的编译速度

提高qt的编译速度

发布时间:2022-03-08 09:11:21

编译qt4.8.6需要多长时间

认真核对操作步骤:
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 = .. ",如此一来,任意路径有效。

㈡ 为什么 Qt Creator 的编译如此之慢

C++ 的编译很慢,与其他语言完全不在一个数量级。任何 C++ 项目都比其他语言的编译慢,一方面是 C++ 语言本身复杂,另外一方面是 C++ 头文件太大,很多库是直接在头文件里面实现的,所以每次需要编译的代码量很大。这个跟 C# 没有可比性。

MFC 使用预编译头文件来缓解这个问题,在 VC 里面集成了预编译好的 MFC 头文件,因而编译速度过得去。

Qt Creator 使用 mingw-gcc 编译,没有预编译头文件的机制,对每个源代码都需要编译 Qt 的头文件,所以完全编译会是慢的。

㈢ qt 构造界面速度慢,是否有提高速度的方法

最直观的方法如楼上说的新建一个对话框ui类,利用Qt Creator的向导功能很容易实现。在主界面中显示该对话框,即在mainwindow.cpp的某个方法中调用对话框的显示方法。传递参数可以修改对话框的构造函数,或者在显示对话框之前调用它的其他函数,将参数传递进对话框。

简单的示例:
对话框类:
class MyDialog: public QDialog
{
...
public:
...
void setSomething(const QVariant &something);
....
}
主界面函数
Mainwindow::showDialog()
{
MyDialog dialog(this);
dialog.setSomething(this->some_member);
dialog.exec();
}

㈣ 大家帮忙看看,怎么加快这个Qt程序的运行速度

肯定是MFC 了 Qt需要太多的库支持,从一个简单的MessageBox就可以看出来,MFC是直接用操作系统的接口的,而 Qt却需要用QMessageBox来封装起来

㈤ Qt Creator里如何设置gcc编译的优化等级

不是release优化的问题。如果是直接运行的话,mingwm10.dll、libgcc_s_dw2-1.dll、qtcore4.dll、qtgui4.dll,还有相应的你用到的库都要放在运行目录下,用dependency walker可以看到dll依赖情况。
然后用到的插件比如qmltooling、imageformats等目录也需要拷到运行目录中,这个用工具看不到依赖,只能全拷然后用排除法,有经验之后代码里哪些用到了就知道了。

出现runtime library错误的最大可能性就是运行目录下的插件不完整。

另外有一种解决方法就是把qt改成静态链接,编译进exe,商业版允许这样做,lgpl版的话如果不是自用就有法律风险。

㈥ 改了QT的源码怎么编译

你想要修改源代码,首先你要拿到源代码。

如果你拿不到,那对于iOS来说就不用想了(反编译也就能到二进制文件,如果你感兴趣也可以尝试修改二进制文件),你是无法修改的。
对于Android,可以将apk反编译回代码,但是Android开发者基本都会在发布之前采取一些防反编译的措施(比如代码混淆),所以你可以想象拿到的代码的可读性…

反编译和修改这种行为极有可能构成侵权,请尊重每个开发者,不论出于学习目的还是其他目的

㈦ QT 和VC++ 的区别(包括效率)

简单说说我的看法!
####################################################
确切说应该比较的是QT和MFC两个界面库
QT使用的编译器是MinGW,即Linux下的GCC移植到windows的版本
MFC使用的编译器是Visual C++

QT的应用主要在Linux下,但是它本身是跨平台的,也支持其他操作系统,是现在比较着名的界面库,着名的KDE就是使用QT开发的

MFC是提供给VC的,但是它主要是代码库,不像VCL和编译器挂钩很多,但是MFC主要是对windows API的封装,所以只能用于windows平台

根据你所说的方面,简单比较一下:
1.开发速度
整体来说可能MFC会快捷一些,因为windows平台的开发工具大多很智能,因为立足于windows的开发人群很广,从菜鸟到专业人士,但是QT由于基于Linux,可用的开发工具不多,大都比较专业,多是第三方产品,而且集成度不大,第三方库也没有MFC的多,从这一点MFC略胜一筹,但是QT自从被Nokia收购后,官方发布了跨平台集成开发环境QTCreator,所以之后走向就不好说了,个人总体感觉QT Creator和VS.net差距比较大,还需改进

但是从库本身来说QT集成的功能较MFC庞大,而且使用的封装技术信号和槽也是比较受到赞许的,比如QT Script为QT提供嵌入式脚本,QT界面库支持CSS,所以QT做出来的界面比MFC要好,而且比较容易,MFC就需要借助第三方库了
因为MFC是浅层封装(最新的2008 sp1加入了BCG的高级界面库,可能有所改善)windows SDK,以降低使用windows SDK引起的开发效率的降低,和开发难度的增加
所以QT库是比MFC优秀的,两个库都经受了时间的考验,稳定性都很高,Bug几乎没有

2.运行效率
MFC由于其浅层封装的特点,所以运行效率是比较高的,加上vc对windows的针对性优化,整体性能是比较高的,但是如果加入第三方库就不敢保证了

QT因为库比较庞大,封装层次较深,所以运行效率较MFC为低,但是在现在的机器配置下,C#大家都不介意了,这些会引起人们的介意吗?

3.应用范围,现在windows的普及范围谁能比过,所以MFC的客户量比较多,QT主要是Linux下的开发人员在使用,但MFC也只是得益于windows(感觉又是一次捆绑战略)

MFC不支持嵌入式开发(主要指手机平台),但是QT有对应的模块,但是现在Java的天下又有谁能撼动?

4.学习难度
QT的封装哲学比较明晰,和系统隔离的比较好,所以个人感觉门槛不高
MFC较难精通,因为深入开发之后SDK还是要了解的,否则程序感觉比较儿童化,呵呵

如果你要选择工作的方向,就现在来说基于vc的开发是比较多的,所以就业比较好
Linux下的QT开发的就业情况还有待提高,但是专业方面,比如企业级的开发,或者涉及了Linux系统,QT还是可以的

这是我的一点见解,主要是自己的感觉,希望对你有所帮助!

㈧ 怎样才能提高QT升级的速度!···

带宠物让它学积分加加或积分多多,多打BOSS,比武
英雄,这些的分值比较大,要利用好双倍积分的时间。有条件的还可以做紫钻

㈨ Qt 子界面打开速度很慢,有什么办法能显着提高速度

提高速度的方法不是很清楚,不过你把几百个控件放一个子界面是否妥当

㈩ QT如何进行线程编译

在Qt中使用多线程,目前就我使用过的有两种,一是子类化QThread,重写run函数,在run函数里实现自己的代码,这一部分代码通常是比较耗时,或者干脆直接阻塞的。比如一个while循环,设置一个标志,判断循环结束。
这样的例子在网上有很多,就不写了。
这样写的话,会有一些东西需要了解。
子类化QThread的方法,只有run函数里面的内容是执行在子线程里的,其他的部分,比如槽函数什么的还是在主线程里执行(假设是在主线程开启的该子线程)。
还有一种方法,是子类化QObject,新建一个线程,然后使用MoveToThread把这个类的对象移到新建的线程中,这种做法使得它所有的槽函数都是执行在新开辟的线程里面。
如果直接(QObject对象).abc()的话,这个成员函数是在主进程内执行,可能会出现"QObject::killTimer: timers
cannot be stopped from another thread"的运行错误。
使用第二种方法的话,貌似会遇到这样的问题:如果在一个槽函数中把子线程阻塞,其他的槽函数无法接受来自主线程

阅读全文

与提高qt的编译速度相关的资料

热点内容
苏州车辆解压代办大概多少钱 浏览:585
租房app什么比较靠谱 浏览:672
运动app如何测量运动心率 浏览:778
苹果手机文件夹图标背景图透明度 浏览:728
辽宁省解压旅游 浏览:269
pdf怎么把部分图纸拷到文件夹 浏览:697
让程序员崩溃的40个瞬间 浏览:545
macbookair修改文件夹名称 浏览:431
iphone如何快速删除所有app 浏览:237
java高级编程pdf 浏览:884
编译的时候报错 浏览:387
安卓音量键怎么锁定 浏览:29
把pdf合并在一起 浏览:659
编程需要啥样的电脑 浏览:968
把word2003转换成pdf 浏览:469
androidbitmap显示图片 浏览:294
工具栏打印命令大全 浏览:784
铜仁人工智能编程 浏览:396
第六章单片机的定时计数 浏览:696
命令方块制作导弹指令是什么 浏览:879