gpt4 book ai didi

c - 在链接描述文件中提取存档文件

转载 作者:行者123 更新时间:2023-12-04 05:16:20 24 4
gpt4 key购买 nike

我正在尝试处理如下问题:

假设我有一个库 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 的信息。 build 。

最佳答案

今天刚要处理同样的问题,所以如果其他人遇到这个问题:缺少一些文件扩展名。类似的东西工作正常:

SECTIONS
{
.text : { libxyz.a:abc.o(.text) }
.data : { libxyz.a:abc.o(.data) }
.bss : { libxyz.a:abc.o(.bss) }
}

还需要处理路径(如果库实际上在某处/libxyz.a)。

关于c - 在链接描述文件中提取存档文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com