qt编译依赖哪些库命令
A. 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项目
B. 在QTCreate如何添加LIB依赖库进行编译
依照上述的格式,你就可以添加编译时需要的依赖库了。
这是一种正确的方法,不过在笔者还不知道这种方法的时候,笔者时通过修改Makefile的。在debug目录下,有一个Makefile文件,你可以通过在如下的方式:在Makefile里面找到
在这里进行添加。不过这种方式的有一个问题:那就是当.pro的文件变化的时候,Makefile就会被重新组织和生成,这个时候LIBS 就会被改变,你需要再次添加,不然又会编译出错。希望这个方法对大家有用!
C. 如何解决QT程序发布时的dll依赖问题
使用QT生成exe应用程序后,其中依赖很多QT中的DLL库,但是在生成exe的时候,这些DLL 并没有添加到exe目录,在很多时候,我们都自己手动去复制需要的DLL,难免不会造成少dll的情况或者在其他的电脑上用不起。今天发现在qt安装目录中发现Qt 官方开发环境里自带了一个工具:windeployqt.exe。可以自动把需要依赖的库文件都自动拷贝到exe目录中。
使用方法:
1.打开QT的命令行工具,
2:进入到你生成exe目录,你可以把生成的exe拷贝到新建的一个目录中,比如c:\text中。
使用命令:1. cd c:\text
2. windeployqt test.exe
然后你就可以看到你的目录中就有需要的dll和文件了,这时候你可以试试能否启动。
D. 命令行编译qt程序 有几种方式
一、环境配置
1
要想使用Qt进行命令行编译,环境配置是必不可少的一步。环境配置好以后,我们才能使用相应的qmake,nmake等命令,并且链接到编译程序时所需要的头文件和库文件。
小提示:为了帮助大家解决环境配置的问题,新版Qt已经自带了相应的批处理文件,我们只要在编译前执行对应的批处理文件即可。
2
首先,我们在命令行编译时需要运行qmake.exe,因此我们需要将该文件的路径添加到PATH变量中。要想做到这一点,我们只需要执行Qt安装目录下的
Qt5.5.1\5.5\msvc2013\bin\qtenv2.bat 批处理即可。
3
其次,在编译过程中,我们还需要用到nmake命令,并且链接相应的头文件和库文件,以生成最终的可执行程序。要想做到这一点,我们只需要执行VS安装目录下的
D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat批处理即可。
注意:由于我安装的是Qt for VS2013 32位版,所以运行的是vcvars32.bat,如果你安装的是64位版,请运行vcvars64.bat。
4
至此,环境配置就大功告成了。关于这个环境配置,需要特别指出的是,这个配置是临时性的,只在当前命令行窗口有效;也就是说,你关闭命令行窗口后,均需要重新运行相应的批处理文件。
END
二、命令行编译
首先,将以上两个批处理文件复制到要编译的工程目录中。
然后,点击菜单“文件”-“打开命令提示符”,在该目录下打开命令行窗口。
执行批处理文件qtenv2.bat。注意,由于该批处理会跳转到Qt安装目录,我们执行完毕后需要回到我们的当前目录(我这里由于Qt安装目录与当前目录不在同一个磁盘,只要切换磁盘便回到当前目录了)。
执行批处理文件vcvars32.bat。
下面,正式开始编译。首先,生成工程文件。键入命令:
qmake -project
说明:生成的工程文件名会与你当前的目录名同名。例如,我当前的目录名为test,生成的工程名则为test.pro。
接着,输入qmake test.pro,生成相应的Makefile文件。
最后,键入nmake,生成最终的可执行文件。
E. 如何创建并配置Ubuntu下QT编译器
操作系统是 Ubuntu 8.04,使用目前最新版本的QT 4.4.0,安装起来即为简单,只要运行以下命令就行:
sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
注意在这个版本的软件包中,qt4-dev-tools 包含了Qt Assistant及Qt Linguist等工具,因此不需要单独安装这两个工具。其它的,qt4-doc 是帮助文档,包含了Qt中各个类库的详细说明以及丰富的例子程序,可以使用Qt Assistant 工具来打开阅读。qt4-qtconfig 是配置Qt环境的一个对话框,一般默认就行了,很少有必要去更改。qt4-demos 包含很多可以运行起来的可执行文件以及源代码。qt4-designer是用来设计GUI界面的设计器。
为了连接Mysql数据库,需要安装连接MySQL的驱动程序:
sudo apt-get install libqt4-sql-mysql
比起在Windows下安装和配置Qt的MySQL驱动来说,简直太方便了。如果还需要其它的没有默认安装的Qt库,可以在命令行输入 sudo apt-get install libqt4- 然后按tab键自动补全,就会列出所有以libqt4- 开头的软件包。
这些都可以使用一个命令搞定,而不需要自己从源码开始编译。在记不准或不知道名字的情况下,使用tab键列出所有可选的软件包是一个很实用的小技巧。
在我的项目中,还需要画一些数据曲线和统计图表等,而第三方的QWT库提供了这些功能。同样,只需要一个命令即可完成安装:
sudo apt-get install libqwt5-qt4 libqwt5-qt4-dev
这时,打开Qt Designer,就会发现左边的Widget列表里面多了“Qwt Widget”这一组。
最后,关于集成开发环境我觉得QDevelop很不错,它跟Qt Designer结合的很好,而且有提示类成员函数的功能。运行以下命令安装:
sudo apt-get install qdevelop
这样,使用Qdevelop编写代码和编译、调试,使用Qt Designer设计界面,开发效率较高。
F. QT程序怎么调用vc,编译的静态库,动态库等
mingw编译出来的静态库后缀名为.a,编译出来的动态库的导入库后缀名为.dll.a,而在windows下后缀名为.lib的库可能是静态库也可能是动态库的导入库。 mingw编译出来的动态库的导入库可以直接在vc中直接使用
G. 如何在QT中编译数据库驱动
进入到D:\Qt\4.8.4\src\plugins\sqldrivers\mysql目录(QT SDK安装目录)下,找到mysql.pro文件,在第二行添加:
INCLUDEPATH +=D:/Qt/mysql/include
LIBS +=D:/Qt/mysql/lib/libmysql.lib
在该目录下执行qmake生成makefile文件:
qmake -oMakefile mysql.pro (或) qmake
执行make进行编译(VS使用nmake命令)Debug和Release版本:
H. linux下 qt程序源代码如何编译运行
仔细看里面的源代码,应该有一些文件里有连接到*.lib文件的,这是QT的动态库文件把QT库编译成linux下的*.lib,然后编译的时候,把lib文件放在同一文件夹,并且编译命令加上-l *.lib或者放到根目录下的lib目录下也可以。这样试一下。.o文件还需要经过连接才能生成可执行的文件。
I. QT 5.5.0 怎么设置才能实现静态编译
qt默认的编译方式是动态编译的,但是有时候编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译程序,qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:
1.将c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改为
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在开始菜单里找到qt
command
prompt并运行,输入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路径,防止用到vc的头文
J. Qt下如何编译库
akefile文件。一般是qt里自带的qmake工具。
首先先写好cpp和头文件,在当前目录下依次执行qmake -project,qmake,make即可编译。
另外,团IDC网上有许多产品团购,便宜有口碑