关于什么是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。
4 | printf ( "Hello, world!\n" ); |
相同目录下再新建一个名为"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> |
04 | int main( int argc, char ** argv) |
06 | QApplication app(argc, argv); |
07 | QPushButton * button = new QPushButton( "Hello QT!" ); |
09 | QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit())); |
在相同目录下建立一个名为“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!”,大功告成。