[Scons][链接器] 无法找到链接器脚本

[Scons][Linker] Unable to find linker script

我正在尝试使用 scons 构建一个简单的 hello world 项目,显式设置链接器标志以读取自定义链接器脚本:

env.Append(LINKFLAGS = [
    '-T script/linker_script.ld'
    ])

问题是,当这是 运行 时,SCons 在 -T 选项周围加上双引号“”,结果如下:

arm-none-eabi-ld -o bareMetalStartupScons.elf "-T script/linker_script.ld" src/main.o asm/startup.o
arm-none-eabi-ld: cannot open linker script file  script/linker_script.ld: No such file or directory

脚本在那里,如果我只是手动删除双引号和 运行 命令,它会无错误地完成,例如

arm-none-eabi-ld -T script/linker_script.ld src/main.o asm/startup.o

这个问题的任何解决方案或为什么会发生这种情况?

实际上我找到了解决此问题的方法,即指定链接描述文件的路径,而不使用 -T 中的任何 space,例如

env.Append(LINKFLAGS = [
    '-Tscript/linker_script.ld'
    ])

在这种情况下,SCons 在将参数 "as a string" 传递给可执行文件时不会将双引号括起来。