gcc - 重新定位库的特定目标文件

  显示原文与译文双语对照的内容

我有一个用于 ARM Cortex-M3的GCC项目。 链接器脚本定义每个源节必须位于哪里。 所以我有这样的部分


.text : 
{
 *(.text)
}> FLASH
_sidata =. ;
.data : AT (_sidata)
{
 _sdata =. ;
 *(.data)
 _edata =. ;
}

项目使用包含对象文件 object.oother.o的库 lib.a 。 现在我希望 object.o的. text 部分应该放在_sdata和_edata之间。 目的是将这些部分从 Flash的启动代码复制到内存中,并将在那里执行。 other.o 不应该放在该区域中,因为它太大。

我在这个问题上尝试了像这样的问题。


.data : AT (_sidata)
{
 _sdata =. ;
 *(.data)
 object.o(.text)
 _edata =. ;
}

但由于 object.o 从库中获取而不是直接可用,这就失败了。

时间: 作者:

我自己找到的。 库必须是 specififed 。


.data : AT (_sidata)
{
 _sdata =. ;
 *(.data)
 lib.a:object.o(.text)
 _edata =. ;
}

作者:
...