0

我正在尝试使用带有 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 初始化.obj power.obj TO Outfile.omf

我想要的是:

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

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

任何人?

4

1 回答 1

1

我通过使用解决了这个问题:

    env['LINKCOM']     = '$LINK ",".join( $SOURCES ) TO $TARGET $LINKFLAGS $__RPATH $_LIBDIRFLAGS $_LIBFLAGS'
于 2012-08-13T12:33:42.553 回答