使用gcc创建可重定位目标文件会导致“找不到-lgcc_s”错误

时间:2015-11-18 09:55:54

标签: gcc linker ld

我正在尝试使用 gcc 制作可重定位目标文件。我使用this post的解决方案。该解决方案适用于 ld

$ ld -r a.o b.o -o c.o

但是,当我尝试将其与 gcc 一起使用时,会发生以下错误:

$ gcc -r a.o b.o -o c.o
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

使用-Wl,-r-Wl,--relocatable选项会得到相同的结果。

有没有办法将可重定位目标文件链接到 gcc ,或者我被迫使用 ld 来执行此操作?

1 个答案:

答案 0 :(得分:0)

要解决此问题,还必须将-nostdlib选项传递给 gcc

$ gcc -r -nostdlib a.o b.o -o c.o

我不确定,但似乎没有此选项 gcc 会尝试将标准库链接到输出可重定位目标文件。