SCons教程(10)多平台配置

SCons教程介绍了如何在多平台环境下进行配置,包括CheckCHeader、Exit、CheckFunc等功能。CheckCHeader能检查C语言头文件是否存在,Exit用于退出,CheckFunc检查函数是否存在,CheckLib检测库文件,CheckLibWithHeader同时查找库和头文件,CheckType验证数据类型,CheckTypeSize则测定数据类型所占内存大小。这些工具简化了跨平台配置的工作。
摘要由CSDN通过智能技术生成

多平台配置

在不同平台下,或者是不同的源码类型编译的时候,都需要根据平台进行重新配置工作,即使使用配置文件,也需要有一部分工作量,而且对于一些老旧项目,可能会导致一些其他问题的出现。
使用 Configure 函数,可以读取环境内的配置信息,然后补充一些检查、配置函数。

CheckCHeader

CheckCHeader 可以用来检查当前搜索路径下C语言的头文件(.h)文件是否存在。

env = Environment(CPPPATH = ['.'])
Repository('./hello2', './hello')
conf = Configure(env)

if not conf.CheckCHeader('math.h'):
    print('Math.h must be installed!')
    Exit(1)
else:
    print('math.h is exist.')


if conf.CheckCHeader('foo.h'):
    conf.env.Append(CPPDEFINES='HAS_FOO_H')
else:
    print('foo.h is not exist!!')

if conf.CheckCHeader('inc.h'):
    print('inc.h is exist!!')
else:
    print('inc.h is not exist!!')


env = conf.Finish()

可以看到对于标准库内文件 math.h 是可以检查到;对于不存在的文件 foo.h 是检查不出来的;对于存在一个路径下的头文件 inc.h 是可以判断是存在的。

admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day10
$ scons -Q -c && scons -Q
math.h is exist.
foo.h is not exist!!
inc.h is exist!!
math.h is exist.
foo.h is not exist!!
inc.h is exist!!
scons: '.' is up to date.

Exit

退出函数

CheckFunc

CheckFunc 可以检查一个函数是否存在。

env = Environmen
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值