即使在阅读了几个手册页和指南之后,我找不到一个非常具体问题的明确答案。我处理标题中提到的工具链的链接描述文件。在开发过程中,我想将静态库(存档,.a)链接到RAM中的某个位置。我可以不通过像常规.o文件一样处理它来完成此任务,如下例所示:
SECTIONS {
outputa 0x10000 :
{
all.o
foo.o (.input1)
}
outputb :
{
foo.o (.input2)
foo1.o (.input1)
}
outputc :
{
*(.input1)
*(.input2)
}
}
经过漫长的旅程,我在另一个Question找到了一个提示。这引出了我目前的解决方案:
...
.ramlib : ALIGN(4)
{
*liblpcspifilib_M3.a: (*);
} > RamLoc40 AT>MFlashA512
...
请注意冒号语法。这会将liblpcspifilib
的所有内容链接到Ram。但是没有“:”它就不会链接任何东西。即使在我发现如何解决问题之后,我也找不到有关该行为的任何其他信息。
任何人都可以向我解释这个吗?
答案 0 :(得分:1)
由于某种原因,在官方GNU文档中很难找到这些信息,所以我认为它是某种扩展。第50页的Here告诉我们:
您还可以通过编写模式来指定存档中的文件 匹配存档,冒号,然后匹配文件的模式, 结肠周围没有空格。
‘archive:file’ matches file within archive ‘archive:’ matches the whole archive ‘:file’ matches file but not one in an archive