如何制作假代理导入库

时间:2017-11-25 07:02:21

标签: c gcc ld binutils

我记得找到* .a库,它不包含任何对象,而是列表库(作为纯文本?),类似于:-liconv -lm

因此,当gcc遇到它时,将搜索两个库以进行链接。

有这样的伎俩吗?很确定它在那段时间工作,但我现在还不知道如何制作它。

1 个答案:

答案 0 :(得分:0)

您的链接器来自binutils吗? binutils ld支持implicit linker scripts.a个文件:

  

如果指定链接器无法识别为目标文件或存档文件的链接器输入文件,它将尝试将该文件作为链接描述文件读取。如果无法将文件解析为链接描述文件,则链接器将报告错误。

链接描述文件不必复杂,它可以像这样简单(对于glibc' s libc.so):

/* GNU ld script.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( …/libc.so.6 …/libc_nonshared.a AS_NEEDED ( …/ld-linux-x86-64.so.2 ) )

或者你可以use INPUT to delegate things to ld

  

如果您使用“INPUT (-lfile)”,则ld会将名称转换为libfile.a,与命令行参数“-l”一样。