Windows下用Scons编译QT程序

转载 2012年03月26日 10:16:39

Windows下用Scons编译QT程序

By , 2012/01/05 23:39

关于什么是python、什么是scons、什么是qt……这些肤浅、粗俗的问题,请求助于搜索引擎。 
本文仅记录怎么在Windows系统上让这几位合作起来。

注意: 
1. 前提是系统已经安装有QT SDK,安装有VC(或者MingW或者Cygwin之类的编译环境)。 
2. 注意文中路径,网上很多不成功的情况都源自某个环节的路径出错。 
3. 文中所列均为跨平台工具,理论上在其它系统环境下也能完成,成与不成,看你的悟性,以及人品。

一、安装Python。 
目前scons只能工作在python2系列上。我们需要先安装python2,现在python2系列最新的版本是2.7.2。 
最好的方式是到python.org上去下载windows installer,相当简单,基本一路next就OK。 
假设我们安装在D:\SOFTWARE\Python2.7

二、安装scons。 
最好的方式是去www.scons.org下载scons的windows intaller。当前最新的版本是http://prdownloads.sourceforge.net/scons/scons-2.1.0.win32.exe。 
然后点击安装。基本上,你只需简单的一路next。 
scons的installer会自动检测已经安装的python,然后将自己的程序安装到python子目录下。 
安装好的路径应该是这样: 
D:\SOFTWARE\Python2.7\Lib\site-packages\scons-2.1.0

三、测试scons。 
随便找个目录,新建一个helloworld.c。

1 #include <stdio.h>
2 int main()
3 {
4     printf("Hello, world!\n");
5     return 0;
6 }

相同目录下再新建一个名为"Sconstruct"的文件,内容只有一行,注意大小写。: 
Program(‘hello.c’)

然后进入命令行模式,CD到Sconstruct所在的目录,执行scons命令。 
一般会有以下输出:

      C:\>scons 
      scons: Reading SConscript files … 
      scons: done reading SConscript files. 
      scons: Building targets … 
      cl /Fohello.obj /c helloworld.c /nologo 
      link /nologo /OUT:helloworld.exe helloworld.obj 
      embedManifestExeCheck(target, source, env) 
      scons: done building targets.

同时在当前目录下会生成一个hellow.exe,大功造成。

四、安装scons-qt。 
scons-qt是基于scons项目的扩展模块,可以让scons支持QT特有的编译工具,像moc,rcc,uic等。 
在scons的wiki页面上可以看到scons-qt的介绍。(http://www.scons.org/wiki/ToolsIndex) 
当前scons-qt的主页在 https://bitbucket.org/dirkbaechle/scons_qt4/downloads 。 
当前最新版的下载地址 https://bitbucket.org/dirkbaechle/scons_qt4/get/default.zip 。 
解压出来会看到两个目录,分别是使用手册和测试用例,先放一边。 
真正需要安装的其实只有一个文件,即__init__.py。 
D:\SOFTWARE\Python2.7\Lib\site-packages\scons-2.1.0\SCons\Tool目录下新建一个名为qt4的文件夹。 
然后把__init__.py拷贝到该目录中。就这么简单。

五、测试scons-qt。 
下面是一个简单的QT程序,helloqt.cpp。

01 #include <QtGui/QtGui>
02 #include <QtCore/QtCore>
03  
04 int main(int argc, char ** argv)
05 {
06     QApplication app(argc, argv);
07     QPushButton * button = new QPushButton("Hello QT!");
08     button->show();
09     QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));
10     app.exec();
11     return 0;
12 }

在相同目录下建立一个名为“SConstruct”的文件,内容如下: 
env=Environment() 
env['QT4DIR']="D:\\SOFTWARE\\QT4.7.3" #这里是QT的安装路径 
env.Tool("qt4") 
env.EnableQt4Modules(['QtGui','QtCore']) 
env.Program(‘helloqt’,'helloqt.cpp’) 
特别要注意前四行,经常会有人在这里遇到问题。 
然后进入命令行模式,进入SConstruct所在目录,执行scons。

D:\Workspace\QT\helloQT>scons 
scons: Reading SConscript files … 
scons: done reading SConscript files. 
scons: Building targets … 
cl /Fohelloqt.obj /c helloqt.cpp /TP /nologo /DQT_GUI_LIB /DQT_CORE_LIB /ID:\SOF
TWARE\QT4.7.3\include /ID:\SOFTWARE\QT4.7.3\include /ID:\SOFTWARE\QT4.7.3\includ 
e\QtGui /ID:\SOFTWARE\QT4.7.3\include\QtCore 
helloqt.cpp 
link /nologo /OUT:helloqt.exe /LIBPATH:D:\SOFTWARE\QT4.7.3\lib qtmain.lib QtGui4
.lib QtCore4.lib helloqt.obj 
scons: done building targets.

当前目录下生成了一个helloqt.exe的文件。 
双击看到“Hello QT!”,大功告成。

相关文章推荐

如何编译支持在Windows2000下运行的Qt程序

一、历程 这周接到一个软件开发任务,需要写一个界面程序,在windows2000下运行。一开始,我想得很简单:window2000和XP应该是差不多的,只要在XP下能运行的,windows200...

windows下打包Qt程序

  • 2015年02月27日 15:27
  • 2.03MB
  • 下载

Windows如何打包Qt程序

  • 2014年07月01日 22:20
  • 2.09MB
  • 下载

(2012.03.07)如何在windows上发布Qt程序

转载自 zhanglei_186 最终编辑 gclsoft   #define me freshman //我是新手,发现错误请指正 你已经很厉害,可以写一些实现自己想法的程序了。 那么...
  • neicole
  • neicole
  • 2012年03月07日 22:34
  • 1556

QT程序安装包制作(windows)

QT程序设计完毕时,我们就要发布自己的程序,发布程序有两种方法:一是静态编译,二是制作程序安装包。 静态编译好麻烦,我从来没有成功过,所以我用了动态编译方法,设计完成时,用release方式编译...

在Windows下部署QT程序的总结

作者:风行雪舞 转自:http://www.cnblogs.com/elect-fans/archive/2012/03/15/2408583.html Table of Contents ...
  • whw8007
  • whw8007
  • 2014年02月11日 15:07
  • 360

windows下qt程序发布

这个问题,其实 Qt 的 manual 中解释的已经比较清楚了。下面是我根据自己的理解和实验后写的东西,希望比Qt文档容易理解一点。 另外:你可能对 Qt 插件学习(一) 感兴趣。如果需要制作...
  • ZXGIS
  • ZXGIS
  • 2012年08月27日 09:15
  • 1157

windows下动态发布QT程序

Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll, 如果自己去复制dll,很可能缺少几个文件,导致exe在别的电脑里无法正常运行。 因此 Qt 官方开发环境...

Windows如何打包Qt程序

Windows如何打包Qt程序 很多Qt爱好者想发布自己的Qt软件,但却发现在其他没有安装Qt SDK的机器上无法运行,这就是本文想要说明的问题。现在网上大部分软件都要发布自己开发的应用程序...
  • gzshun
  • gzshun
  • 2012年04月24日 21:57
  • 37486

在windows下发布QT程序遇到问题及解决

123
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows下用Scons编译QT程序
举报原因:
原因补充:

(最多只允许输入30个字)