使用带有Keil编译器/链接器的scons

时间:2012-07-04 13:37:35

标签: scons keil

我正在尝试使用带有scons的Keil C51编译器作为构建系统。

我遇到的最后一个问题是如何将$SOURCES以逗号分隔输出到链接器。默认使用空格作为分隔符。

SConstruct的相关部分是

path = ['C:\Keil\C51\BIN']
env = Environment(ENV = {'PATH' : path})

#Compiler settings
env['CC']        = 'c51.exe' 
env['CCCOM']     = '$CC $SOURCES $_CPPINCFLAGS $CFLAGS  $_CCCOMCOM ' #-o $TARGET 
env['INCPREFIX']  = 'INCDIR('
env['INCSUFFIX']  = ')'

# Linker settings
env.Replace(LINK='BL51.exe')
env['LINKCOM']     = '$LINK $SOURCES TO $TARGET $LINKFLAGS $__RPATH $_LIBDIRFLAGS $_LIBFLAGS'

有了这个我得到:

  

BL51.exe driver.obj flash.obj initialization.obj power.obj TO Outfile.omf

我想要的是:

  

BL51.exe driver.obj,flash.obj,initialization.obj,power.obj TO Outfile.omf

$SOURCES是一个构造变量,我无法找到如何更改它打印到命令行的方式。

任何?

1 个答案:

答案 0 :(得分:1)

我通过使用:

解决了这个问题
    env['LINKCOM']     = '$LINK ",".join( $SOURCES ) TO $TARGET $LINKFLAGS $__RPATH $_LIBDIRFLAGS $_LIBFLAGS'