我尝试使用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
此问题的任何解决方案或任何想法为何会发生这种情况?
答案 0 :(得分:0)
实际上我找到了解决这个问题的方法,即指定链接描述文件的路径而没有来自-T的任何空格,例如。
env.Append(LINKFLAGS = [
'-Tscript/linker_script.ld'
])
在这种情况下,SCons在将参数传递给可执行文件时不会将参数“作为字符串”放在参数附近。