即使在阅读了几页手册和指南之后,我也找不到一个非常具体的问题的明确答案。我为标题中提到的工具链编写了一个链接脚本。在开发过程中,我将静态库(归档,.a)链接到内存中的一个位置。我可以通过像普通的文件一样处理它,而不是来完成这个任务,如下例所示:
SECTIONS {
outputa 0x10000 :
{
all.o
foo.o (.input1)
}
outputb :
{
foo.o (.input2)
foo1.o (.input1)
}
outputc :
{
*(.input1)
*(.input2)
}
}长途旅行后,我在另一个问题中发现了一个提示。这让我想到了我目前的解决方案:
...
.ramlib : ALIGN(4)
{
*liblpcspifilib_M3.a: (*);
} > RamLoc40 AT>MFlashA512
...请注意冒号语法。这将将liblpcspifilib的所有内容作为块链接到Ram。但是没有":“它不会链接任何东西。即使在我发现如何解决这个问题之后,我也找不到任何关于这种行为的其他信息。
有人能给我解释一下吗?
发布于 2015-04-29 17:41:58
由于某些原因,在官方的GNU文档中很难找到这些信息,所以我假设它是某种扩展。这里在第50页告诉我们:
您还可以在档案中指定文件,方法是编写与归档、冒号匹配的模式,然后编写匹配文件的模式,在冒号周围没有空格。 “存档:文件”匹配档案中的文件:“匹配整个存档”:文件“匹配文件”,而不是存档中的一个。
https://stackoverflow.com/questions/29950386
复制相似问题