VS2005 编译 Qt4.3.2 问题解决备忘
2013-03-29 13:48
435 查看
VS2005 编译 Qt4.3.2 问题解决备忘
编译:必须通过"开始"菜单 -> "Microsoft Visual Studio 2005" -> "Visual Studio Tools", 运行命令行Visual Studio 2005命令行。再转到Qt4.3.2源码目录,配置命令参照网上相关文档configure -vcproj。
编译过程中,会问一个问题:是否接受GPL协议,选'y',经过一段时间以后,qmake被编译出来了。
接着编译代码,简单的敲入nmake即可,别人一步可以到位,可本人不行啊!其问题见下。
![](http://hiphotos.baidu.com/yelgis/pic/item/e1b1ec3fb6529eec7c1e7149.jpg)
问题1:
![](http://hiphotos.baidu.com/yelgis/pic/item/9b9616dd7a4646f78d102996.jpg)
解决:
下载zlib,本人下载的是123版
拷贝zlib1.dll到C:\WINDOWS\system32和D:\Program\Microsoft Visual Studio 8\VC\bin文件夹下
拷贝zdll.lib、zdll.exp、zlib.def到D:\Program\Microsoft Visual Studio 8\VC\lib文件夹下
拷贝zconf.h、zlib.h到D:\Program\Microsoft Visual Studio 8\VC\include文件夹下
设置工程属性页如下图
![](http://hiphotos.baidu.com/yelgis/pic/item/ffc5fbceef55c62d93457e6b.jpg)
问题2:
编译src\plugins\imageformats时,出现以下情况:
qtiff缺少zlib.lib库,其解决办法同上。
qjpeg缺少libjpeg.lib库,因此下载GnuWin32,本人通过GetGnuWin32把全部东西都给下载下来了,并将其路径添加到windows环境变量中,不过对于libjpeg.lib这个库好像没有,不过他有jpeg.lib库,因此将其改名为libjpeg.lib。如此一来顺利编译。
![](http://hiphotos.baidu.com/yelgis/pic/item/967d9534902af299d1a2d374.jpg)
问题3:
基本上Qt的全部库都编译的差不多了,现在就开始编译Qt工具了,其他Qt工具还行,没有出现什么问题,可是编译QtDesigner时确出问题了。这个问题目前还没法解决。也只能网搜学习了,还好编译一路来,所需的主要东西已经出来了。还是值得高兴一下的。本人将问题帖出来,希望有缘人能给我一些help。在此先谢谢了!
![](http://hiphotos.baidu.com/yelgis/pic/item/2cec956eef0711f480cb4a4e.jpg)
出错初步分析:
如果是连接错误,而生成obj文件又没问题,那么,问题应该出在QtDesignerd4.dll,其中这个dll文件中所包含的actioneditor.obj程序代码段,在编译过程中没有将连接错误中提到的函数编译进去,因此问题的关键是QtDesignerd4.dll出了问题。下面就应该是想办法将4给个函数编到里面去。由于QtDesignerComponents需要QtDesignerd4.lib因此QtDesignerd4.lib同样需要由QtDesigner生成。
![](http://hiphotos.baidu.com/yelgis/pic/item/cfe5e900a29c8a3f728b65c0.jpg)
进入Visual Studio 2005命令行,cd到D:\Gis\QGIS\qt\qt-win-opensource-src-4.3.2\tools\designer
qmake designer.pro
qmake -tp vc designer.pro
将Qt安装目录下的libQtScript.lib复制改名为QtScript4.lib
nmake
或者
修改designer.sln用notepad打开,将Microsoft Visual Studio Solution File, Format Version 10.00中的10.00改为9.00,另起一行添加# Visual Studio 2005,如此同法,修改其下所有的sln文件,即可用VS2005重新编译。
这个designer的编译把我编译的稀里糊涂的。不过最终还是稀里糊涂的把designer.exe给编译出来了。
为了让界面好看点本人修改了一下designer的main.cpp源码让其具有QCleanlooksStyle风格。
#include "qdesigner.h"
#include <QLibraryInfo>
#include <QDir>
#include <QCleanlooksStyle>
#include <stdlib.h>
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(designer);
// report Qt usage for commercial customers with a "metered license" (currently experimental)
#if QT_EDITION != QT_EDITION_OPENSOURCE
QString reporterPath = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator()
+ QLatin1String("qtusagereporter");
#if defined(Q_OS_WIN)
reporterPath += QLatin1String(".exe");
#endif
if (QFile::exists(reporterPath))
::system(qPrintable(reporterPath + QLatin1String(" designer")));
#endif
QDesigner app(argc, argv);
QDesigner::setStyle(new QCleanlooksStyle);
app.setQuitOnLastWindowClosed(false);
return app.exec();
}
效果如下,比以前的更有线条了呵,哈哈!
![](http://hiphotos.baidu.com/yelgis/pic/item/a96837b3e1d7d689d8335a3f.jpg)
试编一个小程序:
源码如下,保存为main.cpp
#include <QApplication>
#include <QPushButton>
int main( int argc, char * argv [] )
{
QApplication app(argc, argv);
QPushButton hello("Hello world!");
hello.resize(100, 30);
hello.show();
return app.exec();
}
命令行:
qmake -project
qmake -t vcapp
![](http://hiphotos.baidu.com/yelgis/pic/item/3d423a0806b34bff62d986cb.jpg)
![](http://hiphotos.baidu.com/yelgis/pic/item/a7d64ec641a88f359d163dcb.jpg)
相关文章推荐
- Qt/QTE 编译安装问题与解决方法
- Qt程序编译是出现"field has incomplete type"问题的解决(转)
- Qt+VS2005 LNK 2019 LNK2001 问题解决方案
- Qt4.6.2已编译二进制版本在VS2005中的问题
- 解决重装Qt后不能编译Examples的问题
- NANOPI2 编译QT+sqlite 问题解决方式
- Qt5 在Visual Stuidio下编译详解及部分问题的解决
- 解决vs2005 在 ie8 中 调试后停止问题【备忘】
- QT5编辑中文字符编译报错问题解决办法
- 在windows下的qt5.7.1 的纯C或C++项目命令行中文乱码、无法编译等问题解决
- QT编辑编译问题备忘
- 在编译QT中出现The tslib functionality test failed!....的问题及解决办法
- 如何解决编译Qt及Qvfb时出现的问题
- Qt源码重新编译QtMultimedia模块解决XP播放视频问题
- Redhat AS3上编译qt4.3.2,出现krb5.h找不到的问题
- 使用VS开发Qt项目时编译速度慢的问题解决
- QT/QTE 编译安装问题与解决之道
- 关于VS2005编译wince Application 时缺少DLL问题的解决
- Qt4.6.2已编译二进制版本在VS2005中的问题
- C++/Qt程序编译运行时出现的问题以及解决办法