Qt编译(转载)

转自:http://www.cnblogs.com/CGDeveloper/archive/2010/05/18/1738489.html

1.从http://www.qtcentre.org/下 载QT源代码,注意是源代码。我下载到的是QT4.5.1版,文件名为qt-win-opensource-src-4.5.1.zip

  1. 2.解压,注意不要解压路径不要含有空格或中文,我把它解压到了d:/qt451里
  2. 3.准备一个存放编译后“成品”的文件夹,我准备放在d:/qt451/static里
  3. 4.把QT源码里的“mkspecs” 文件夹复制到准备存放“成品”的地方,比如我的就是把d:/qt451/qt-win-opensource-src-4.5.1/mkspecs复 制到d:/qt451/static里
  4. 用记事本或其它编辑器打开D:/qt451/static/mkspecs/win32-msvc2005/qmake.conf(注 意VC版本号),按需要修改:
    • 如果不希望编译出来的DLL或EXE链接到VC运行时库,就把-MD改成-MT,把-MDd改成-MTd(查找替换)。
    • [可选]如 果做了上一步,那么就不需要嵌入manifest了,去掉CONFIG+= 后面的embed_manifest_dll embed_manifest_exe。
    • VC默认是“将wchar_t 视为内置类型”的,所以建议去掉-Zc:wchar_t-, 否则以后用到一些与wchar_t有关的函数(如fromWCharArray)时,就要在项目属性里设置“将wchar_t视为内置类型”为No了)。
  5. 6.进入“Visual Studio 2005 命令提示”,其它版本的VC也一样。
  6. 7.进入解压的地方,比如我的: cd d:/qt451/qt-win-opensource-src-4.5.1。(小提示,在控制台里输入前几个字符再按tab 键,可以自动填充路径、文件名,MS在向Linux Shell学习?)
  7. 8.键入命令configure -prefix d:/qt451/static -debug-and-release -static -opensource -no-qt3support -no-dbus -no-phonon -no-webkit -qt-gif -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg
    • 输入configure -help可以显示所有选项的帮助信息,上面是我用的选项,解释一下:
    • -prefix 路径名 编译后的安装路径
    • -debug-and-release 编译Debug和Release版本
    • -static 编译静态库,如果不指定,默认为编译成DLL
    • -opensource 使用LGPL协议,如果不指定也行,configure运行后会问的
    • -no-qt3support 不用编译与QT3兼容的一些废弃函数,如果你比较熟悉QT3,还是去掉它吧
    • -no-dbus 不用链接到DBus库,这个库偶好像在Linux里看到过,Windows里不用。
    • -no-phonon 同上,不要链接
    • -no-webkit 是否编译Web相关的一些QT子库,加上这个可以省不少编译时间,就看你是否准备用这些库了。
    • -qt-gif 使用QT自带的gif库
    • -qt-zlib 使用QT自带的zlib库
    • -qt-libpng 使用QT自带的libpng库
    • -qt-libmng 使用QT自带的libmng库
    • -qt-libtiff 使用QT自带的libtiff库
    • -qt-libjpeg 使用QT自带的libjpeg库
  8. 9.configure可能要花几分钟时间,成功后再输入nmake开 始编译,编译会花去大概1小时(和配置有关啦,我是以我的老爷机为参考的)。
  9. 10.输入nmake install
  10. 11.如果没出错的话,“QT成品”就已经在我们之前建立的成品路径里了(我的是d:/qt451/static)
  11. 12.VC只需要成品路径里的东东就够了,如果你想,可以删除解压的那些源代码省点空间。
测试是否成功
  1. 打开VC
  2. 新建项目
  3. 设置项目属性
    1. 配置属性->C/C++->常规->附加包含目录:D:/qt451/ static/include
    2. 配置属性->C/C++->代码生成->运行时库:多线程调试(/MTd),这 条依据你当时修改qmake.conf的情况决定
    3. 配置属性->链接器->常规->附加库目录:d:/qt451/static/ lib
    4. 配置属性->链接器->输入->附加依赖项:qtmaind.lib QtCored4.lib QtGuid4.lib,如果要编译Release,把后面的d去掉。
代码:
  1. #include <Qt/QtGui>
  2. int APIENTRY _tWinMain(HINSTANCE hInstance,
  3. HINSTANCE hPrevInstance,
  4. LPTSTR    lpCmdLine,
  5. int       nCmdShow)
  6. {
  7. QApplication app(__argc, __argv);
  8. QLabel *label = new QLabel("Hello Qt!");
  9. label->show();
  10. return app.exec();
  11. }

:如果编译的是动态库,那么要把QT成品里的bin目录加入path系统变量,或者把这里用到的DLL复制到与你的程序相同的目录里,一般是 QtCore4.dll和QtGui4.dll(Debug版为QtCored4.dll和QtGuid4.dll),依你使用的子库而定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值