如何将多个.o合并为一个.o文件

一般情况下,多个.o都是打包成一个.a做为库文件使用,最近碰到个情况,需要将多个.o合并为一个.o文件,其实方法并不复杂,把几个.o重新链接一下就行了,一条命令就能搞定。

ld -r -s -o output.o origin1.o origin2.o

参数-r表示输出可重定位的文件(新生成的.o可以再次做为ld的输入),-s表示忽略输出文件中的符号信息;另外output.o是新生成的.o文件,origin1.oorigin2.o为原始的.o文件,还可以加上更多,或者直接*.o也可以。