我正在尝试处理如下问题:
假设我有一个库 libxyz.a 创建自:
/* main.c */
int main(void)
{
int a;
}
编译和存档:
gcc -c main.c -o abc.o && ar cr libxyz.a abc.o
我如何编写链接描述文件才能将 abc.o 准确地放在预期的位置?
我试图以这种方式处理它:
/* script.ld */
SEARCH_DIR(.)
INPUT(-lxyz)
SECTIONS
{
.text : { xyz:abc(.text) }
.data : { xyz:abc(.data) }
.bss : { xyz:abc(.bss) }
}
但运行后:
ld -T script.ld
我得到:
ld: cannot find xyz:abc
我在论坛的链接器文件中找不到任何提取档案的示例。我唯一找到的是链接器的文档,它只包含有关archive:file
构造的信息。