[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" 传递给可执行文件时不会将双引号括起来。
我正在尝试使用 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" 传递给可执行文件时不会将双引号括起来。