1. 有哪位知道我这个QT编译的问题呢前两天还好好的 今天就这样了,软件也重新安装过了,应该没有问题了。XP
明显楼主的环境是windows,检查一下你的路径是不是含有汉字或者环境变量是不是没设好,最好把错误贴出来,才能得进一步分析.
2. 为什么编译QT花那么长时间
它本身就比较大,另外和你电脑的配置也有关系。你配置好就不用等多久。
3. 编译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 = .. ",如此一来,任意路径有效。
4. Qt如何实现静态编译与动态编译共存
通常不需要在系统变量中加入Qt库的位置的。Qt Creator可以自动扫描到系统中存在的Qt库版本,如果扫描不到,可以通过Creator的 Tool->Options->Qt4中添加静态库的路径。而QDevelop虽然没有那么智能,但是可以手动指定INCLUDE和LIB的位置。或许,这根本就不是一个问题。如果怀念动态库,或者在产品发布之前并不想体验静态编译那种蜗牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要记得在Project中选择相应的版本。
5. 为什么我的qt5.4编译以后就没反应了,也不出现控制台程序,也没有生成.exe文件
这是再正常不过的事了,程序执行完(简单程序时间可忽略)就自动关闭了,想让它停住可加<cstdlib>头文件并在return 0;语句前加一句system("pause");如果不想看到“请按任意键继续”可换为
system("pause>nul");
另外一种做法:(不需加其他头文件,但要<iostream>头文件)在return 0;前加cin.get()(这句话的作用是读取一个字符,包括换行符),这时随便按一个键就会退出程序。
你如果是想学习C++语法,在DEV-C++里编译运行就可以了,没有必要自己去打开exe文件。
6. 为什么 Qt Creator 的编译如此之慢
C++ 的编译很慢,与其他语言完全不在一个数量级。任何 C++ 项目都比其他语言的编译慢,一方面是 C++ 语言本身复杂,另外一方面是 C++ 头文件太大,很多库是直接在头文件里面实现的,所以每次需要编译的代码量很大。这个跟 C# 没有可比性。
MFC 使用预编译头文件来缓解这个问题,在 VC 里面集成了预编译好的 MFC 头文件,因而编译速度过得去。
Qt Creator 使用 mingw-gcc 编译,没有预编译头文件的机制,对每个源代码都需要编译 Qt 的头文件,所以完全编译会是慢的。