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!”,大功告成。

scons用户指南第一章:编译和安装SCons

1、安装Python 因为SCons是用Python编写的,所以你必须在使用SCons之前安装好Python。你在安装Python之前,应该注意查看Python是否在你的系统里已经可用了(在系统的命...
  • andyelvis
  • andyelvis
  • 2011年12月08日 23:45
  • 22578

windows下使用SCons编译tolua++

第一次写博客,写的不好
  • xtaieer
  • xtaieer
  • 2014年08月18日 22:54
  • 754

使用scons构建windows程序

虽然Visual Studio的图形界面用起来很方便,但也有它的缺点,就是更改工程的属性时比较麻烦,不如文本的改起来更快捷,所以想试试scons,安装并不是很顺利,因为开源的东西跟微软拼易用性,直的是...
  • Nocky
  • Nocky
  • 2009年04月13日 12:08
  • 4988

RT-Thread 学习笔记(三)---用SCons 构建编译环境

SCons是一套由Python语言编写的开源构建系统,类似于GNU Make。它采用不同于通 常Makefile文件的SConstruct和SConscript文件。这些文件也是Python脚本,能够...
  • aping_cs_dn
  • aping_cs_dn
  • 2014年08月25日 14:24
  • 3862

scons 编译

SCONS
  • lyc417356935
  • lyc417356935
  • 2015年12月03日 13:01
  • 1116

scons 编译json生成 lib文件

我刚刚开始从windows MFC下的开发转的LINUX下的C++开发。在写这篇文章之前我三次安装jsoncpp,每一次安装都犯不同的错误。为了我能够在下一次安装时不再犯错误。特写此文!JSONCPP...
  • luopeiyuan1990
  • luopeiyuan1990
  • 2012年10月22日 17:20
  • 2297

windows环境下配置 scons 与 gnuwin32

SCONS是一只基于python的构建工具,有python的地方就有SCONS,貌似身边用的人不多,但是移植相当方便。目前手上的项目是用SCONS编译前端,组织依赖很不错。在windows下作scon...
  • huajess
  • huajess
  • 2014年03月04日 23:46
  • 1769

scons 实用说明(一)

scons 一个简单实用的可替代make的编译工具
  • fly542
  • fly542
  • 2014年08月01日 21:23
  • 18422

构建工具scons让一切变得简单

你曾经为繁琐的makefile语法纠结过吗?你有想要摆脱VS的束缚,自己构建工程却又苦于无从下手吗?你有为同一个工程要在不同操作系统或不同平台下构建编译环境而苦恼过吗? 本文有我的选择,你的答案。 ...
  • my_business
  • my_business
  • 2012年08月01日 09:04
  • 7162

Windows下Qt程序打包成

打包目的: QT写的程序可执行文件需要拷贝到其他没有QT环境的windows设备上执行。 第一步:构建 工具:QT+qmake+MinGW 我的QT程序是qmake写的,在项目—>编辑构建配置选...
  • Aggressive_snail
  • Aggressive_snail
  • 2015年12月22日 16:24
  • 538
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows下用Scons编译QT程序
举报原因:
原因补充:

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