链接过程中目标文件的顺序

时间:2015-03-26 19:18:13

标签: gcc binutils ar

在Linux档案中,档案通常是目标文件的集合,并使用AR工具创建,例如: :

% ar -cr libfoo.a a.o b.o c.o

现在,在使用gcc编译代码并将其与归档链接时,我想了解目标文件的顺序是否包含在内。 例如,考虑:

% gcc obj/a1.o obj/a2.o obj/a3.o libfoo.a -o main

如果obj / a3.o使用libfoo.a中定义的符号,则libfoo.a应放在a3.o之前:

% gcc libfoo.a obj/a1.o obj/a2.o obj/a3.o -o main

我在编译第三方软件包时发现它,除非我更改了订单,否则我收到“未定义引用”错误:

a3.o: In function 'my_func': undefined reference to 'my_symbol'

这是正常和预期的,或者我的设置中有什么问题?

感谢。

0 个答案:

没有答案