gcc链接器查找函数引用

时间:2010-10-22 20:49:32

标签: gcc

我知道gcc链接器总是在后面的obj或lib文件中查找extern函数。是否有一种方法告诉链接器在整个obj文件或lib中查找引用,如果链接器在以后的obj中找不到。

为考试,

ld a.obj b.obj c.obj

如果链接器在a.obj中找不到x函数,它将查看b.obj或c.obj。

如果链接器在b.obj中没有找到xx函数,它将查看c.obj。如果xx函数在a.obj中,链接器将不会引用对xx的引用。如何解决这个问题。

由于

2 个答案:

答案 0 :(得分:1)

不是最清楚的问题,但也许您正在寻找-( ... -)(或--start-group ... --end-group)选项{{ 1}}(如ldld documentation online中所述)?

答案 1 :(得分:1)

@Matthew's answer可能有助于解决您的初始问题(可能会产生很大的性能成本),但如果您的目标文件依赖于顺序,那么您似乎遇到了非正交设计的问题。