小编fra*_*anz的帖子

SCons:修改中间构建器调用

是否可以更改对中间构建器的调用,例如通过传递目标前缀,以避免环境冲突?

例如,假设您要使用不同的编译器宏为两个不同的库使用源文件,如下所示:

env.Library('libraryA', 'source.c', CCFLAGS=['-DCONFIG_X'])
env.Library('libraryB', 'source.c', CCFLAGS=['-DCONFIG_Y'])
Run Code Online (Sandbox Code Playgroud)

SCons检测到冲突,因为Library-Builder调用Object-Builder来首先使用不同的CCFlags编译源文件.

显而易见的解决方案是从链接中拆分编译,如下所示:

objectA = env.Object('objectA', 'source.c', CCFLAGS=['-DCONFIG_X'])
objectB = env.Object('objectB', 'source.c', CCFLAGS=['-DCONFIG_y'])
env.Library('libraryA', objectA)
env.Library('libraryB', objectB)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更优雅的方式,如果有多个文件用作源,这将特别有用.

谢谢!

python scons

2
推荐指数
1
解决办法
806
查看次数

标签 统计

python ×1

scons ×1