我正在尝试使用带有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是一个构造变量,我无法找到如何更改它打印到命令行的方式。
任何?
答案 0 :(得分:1)
我通过使用:
解决了这个问题 env['LINKCOM'] = '$LINK ",".join( $SOURCES ) TO $TARGET $LINKFLAGS $__RPATH $_LIBDIRFLAGS $_LIBFLAGS'