SCons教程(9) 多个库编译

多个库编译

在一个项目中,可能会存在多种处理器版本的编译目标,也可能会在不同平台上进行编译,这两个情况已经在前面给出了一般的解决方案。本章节来解决在一个项目中,如果要使用几套不同版本的代码和不同的存储代码库,怎么来使用 SCons 中提供的函数来解决这种冲突。

Repository

添加 Repository 来指定搜寻多个存储库的搜索优先级,对于不存在的目录和当前目录会自动排除。
先在 hellohello2 中添加两个相同的源文件 hello.c ,执行搜索路径为 ['./hello2', './hello'] ,执行 scons -Q 第一次会选择 hello2/hello.c 来构建,如果删除掉 hello2/hello.c 后,再次执行 scons -Q ,会选择 hello/hello.c 来进行构建。

# SConstruct

env = Environment()
env.Program('hello.c')
Repository('./hello2', './hello')
admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day9
$ scons -Q
gcc -o hello.o -c hello2\hello.c
gcc -o hello.exe hello.o

admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day9
$ rm hello2/hello.c

admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day9
$ scons -Q
scons: '.' is up to date.

admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day9
$ scons -Q -c
Removed hello.o
Removed hello.exe

admin@DESKTOP-NQU1HUV C:\Users\admin\Desktop\scons\day9
$ scons -Q
gcc -o hello.o -c hello\hello.c
gcc -o hello.exe hello.o

Repository 也可以指定头文件搜索路径,但是需要在 env 创建时,添加上 CCPPATH 变量。

# SConstruct

env 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值