您的位置:首页 > 编程语言 > Qt开发

Windows下用Scons编译QT程序

2012-03-26 10:16 267 查看


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!”,大功告成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: