用VS2010编译Qt工程源码
2013-07-18 07:53 虫虫与贝贝 阅读(2024) 评论(0) 收藏 举报1.为什么会有这种需要?
我猜测可能原因是window平台下Visual Studio较Qt虽然庞大,但是还是有开发调试方便的优势,因此主流的开发环境还是MSVC。但有些程序一开始为了跨平台开发于Qt之上,又想继续在VS中开发,于是需要这种开发环境的转换。
2.具体解决方法
qmake生成平台兼容的项目文件(*.pro),以及针对具体平台的Makefile文件和工程文件。
生成可执行文件一般包括三步:
- 生成一个以.pro后缀的文件,它用于指示该目录下的源文件、头文件等,可以在不同平台下通用。
qmake -project
使用这个命令时要注意,qmake并不会将依赖库添加到*.pro中,在后面的Makefile执行时会报链接error。我们可以手动添加到*.pro中,例如:(红色字体为手动加入的依赖库)
QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += debugTEMPLATE = appTARGET = HelloQtINCLUDEPATH += .# InputHEADERS += mainwindow.hFORMS += mainwindow.uiSOURCES += main.cpp mainwindow.cpp
- 根据“QMAKESPEC”指定的编译环境生成特定的Makefile文件。
set QMAKESPEC=win32-msvc2010 (在windows中,QMAKESPEC默认为win32-g++)qmake -makefile [-unix][-win32] -tp vc例如:qmake -o Makefile HelloQt.pro需注意的是,默认QMAKESPEC未设置情况下,会生成mingw所需的Makefile(好像nmake也可以执行)。但若想生成VS的工程文件(vs2008下*.vcproj,vs2010下*.vcxproj)时一定要设置该变量。
- 如果采用MingW,接着输入make即可。假如采用微软那一套,则输入nmake。如果想生成VS工程文件执行
3.可能出现的错误:
- 如果采用MingW,输入make可能会提示“make不是内部或外部命令……”的错误,
将mingw/bin添加到环境变量中,并且将mingw32-make.exe复制一份,命名为make.exe即可。
- 如果采用微软那套,输入nmake可能会提示“qt cannot open input file qtmaind.lib”的错误,
需要根据特定的Visual Studio版本,编译Qt,生成相应的*.lib。
需要配置的环境变量:
path %path%;%QTDIR%\bin;QMAKESPEC win32-msvc2010QTDIR C:\QT\2010.05\qt
打印当前变量:echo %PATH%
set PATH=C:\Program Files\EasyPHP5.3.0\php;%PATH%echo %PATH%
浙公网安备 33010602011771号