当前位置: 技术问答>linux和unix
gcc中连接器ld -r命令是什么作用
来源: 互联网 发布时间:2017-03-26
本文导语: 有对gcc里面的ld连接器有了解的吗,ld -r 会产生可重定位的输出,是什么意思 比如gcc -c -o a.o a.c ld -r -o a.a a.o。 生成的a.a是这个文件格式a.a: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped 这个...
有对gcc里面的ld连接器有了解的吗,ld -r 会产生可重定位的输出,是什么意思
比如gcc -c -o a.o a.c
ld -r -o a.a a.o。
生成的a.a是这个文件格式a.a: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
这个文件应该不是所谓的静态库吧,是个什么概念
比如gcc -c -o a.o a.c
ld -r -o a.a a.o。
生成的a.a是这个文件格式a.a: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
这个文件应该不是所谓的静态库吧,是个什么概念
|
copy来的
`-r' `--relocateable'
产生可重定位的输出, 比如,产生一个输出文件它可再次作为'ld'的输入。这经常被叫做"部分连接"。
作为一个副作用,在支持标准Unix魔数的环境中,这个选项会把输出文件的魔数设置为'OMAGIC'。
如果这个选项没有被指定,一个绝对文件就会被产生。当连接C++程序时,这个选项就不会解析构造函数的引用;要解析,必须使用'-Ur'。
如果输入文件跟输出文件的格式不同,只有在输入文件不含有重定位信息的时候部分连接才被支持。
输出格式不同的时候会有更多的限制。比如,有些'a.out'的格式在输入文件是其他格式的时候完全不支持部分连接。 这个选项跟'-i'等效
`-r' `--relocateable'
产生可重定位的输出, 比如,产生一个输出文件它可再次作为'ld'的输入。这经常被叫做"部分连接"。
作为一个副作用,在支持标准Unix魔数的环境中,这个选项会把输出文件的魔数设置为'OMAGIC'。
如果这个选项没有被指定,一个绝对文件就会被产生。当连接C++程序时,这个选项就不会解析构造函数的引用;要解析,必须使用'-Ur'。
如果输入文件跟输出文件的格式不同,只有在输入文件不含有重定位信息的时候部分连接才被支持。
输出格式不同的时候会有更多的限制。比如,有些'a.out'的格式在输入文件是其他格式的时候完全不支持部分连接。 这个选项跟'-i'等效