我正在尝试使用 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 来执行此操作?
答案 0 :(得分:0)
要解决此问题,还必须将-nostdlib
选项传递给 gcc :
$ gcc -r -nostdlib a.o b.o -o c.o
我不确定,但似乎没有此选项 gcc 会尝试将标准库链接到输出可重定位目标文件。