04 SCons 常用编译方法

Sconstruct文件与Scons编译器基础教程
Sconstruct文件是Python脚本,用于构建项目。它不按编写顺序执行,而是由Scons决定执行方式。文中介绍了Program构造方法的使用,如编译单一或多个源文件,指定输出文件名,使用Glob和Split函数处理源文件列表,以及如何处理共享源代码。此外,还提到了Object方法用于生成目标文件,以及scons命令行选项进行编译和清理。
  1. 测试代码

hello.c
int 
main(void)
{
    printf("hello,world\n");
}
  1. 基本语法

Sconstruct 文件

Sconstruct文件是一个python脚本文件,但它和python脚本有不同的地方。

1.此文件使用的构造方法执行的工作并不是按照我们排放的顺序去执行,我们只管告诉构造方法我们要做什么,具体如何执行,何时执行由scons编译器自己去决定。

所以我们写的构造方法的顺序可以随便放置

下面是常用的构造方法

# 编译hello.c,生成默认名字的可执行文件,以第一个.c文件命名的可执行文件
# 推荐第二种方式,即使是一个文件我们也写成列表形式
Program('hello.c')或Program(['hello.c'])
 
#指定输出可执行文件的名字为new_hello 
Program('new_hello','hello.c')
 
#源文件有多个情况,使用 list[] 指定输出可执行文件名字为program
Program('program', ['prog.c' , 'file1.c' , 'file2.c'])
 
#使用Glob函数来匹配源文件
Program('program', Glob('*.c'))
 
#便于阅读的方式Split('')
Program('program',Split('main.cfile1.c file2.c'))
#便于阅读的方式单独定义src_files
src_files= Split('main.c file1.c file2.c')
Program('program',src_files)
#便于阅读另一种方式
src_files = Split("""main.c
                             file1.c
                             file2.c""")
Program('program', src_files)
 
#使用关键字参数,参数位置可以不分顺序
src_files = Split('main.c file1.c file2.c')
Program(target='program' , source=src_files)
 
#使用同一个Sconstruct 文件编译多个可执行程序
Program('foo.c')
Program('bar',['bar1.c' , 'bar2.c'])
 
#多个程序共享源代码
#一种方式是:可以将共享的源代码编译成库的方式
#下面方式是:把相同源代码都包含到多个程序的Program构造方法中
#编译器自动识别到相同源代码的目标文件后,不会再重新编译相同的源码
Program(Split('foo.ccommon1.c common2.c'))
Program('bar', Split(' bar1 bar2 common1.c common2.c'))
 
# 编译hello.c,生成目标文件
Object('hello.c')

终端执行(cmd或shell)

scons : 编译

scons -c:清除

scons -Q:编译并输出更少的信息,比如编译的过程明细信息输出可以关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搏哥聊技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值