新一代构建系统scons,,的确很简洁!!
一般在没有IDE的情况下管理C/C++工程会使用make和makefile,,
今天用了一下另一个工程代码管理系统:scons,我感觉scons相对于make较好的一点是,不需要指定文件之间的依赖关系,,从而使得编写文件SConstruct(相当于make中的makefile文件)十分简单!!!!
下面是我今天根据网上的教程写的一个例子:
import os
env = Environment(ENV=os.environ, tools=['mingw'])
src_files = Split(Glob('*.c'))
inc_paths = Split('.')
lib_files = Split('libusb')
lib_paths = Split('.')
env.StaticLibrary(target='libftdi', source=src_files, CPPPATH=inc_paths, LIBS=lib_files, LIBPATH=lib_paths)
下面说明一下:
env = Environment(ENV=os.environ, tools=['mingw'])
这一句说明使用mingw编译器
src_files = Split(Glob('*.c'))
inc_paths = Split('.')
lib_files = Split('libusb')
lib_paths = Split('.')
这几句用来指定源文件、头文件路径、库文件、库文件路径
env.StaticLibrary(target='libftdi', source=src_files, CPPPATH=inc_paths, LIBS=lib_files, LIBPATH=lib_paths)
这一句用来编译静态链接库,生成libftdi.a库文件
很容易想到,编译生成动态链接库应该是
env.SharedLibrary(target='libftdi', source=src_files, CPPPATH=inc_paths, LIBS=lib_files, LIBPATH=lib_paths)
生成可执行文件则是:
env.Program(target='ftdi', source=src_files, CPPPATH=inc_paths, LIBS=lib_files, LIBPATH=lib_paths)
这样会生成ftdi.exe可执行文件。。
虽然是初步接触,但是感觉不编写依赖规则的scons比makefile简单多了!!!!
页:
[1]