我知道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的引用。如何解决这个问题。
由于
答案 0 :(得分:1)
不是最清楚的问题,但也许您正在寻找-(
... -)
(或--start-group
... --end-group
)选项{{ 1}}(如ld
或ld
documentation online中所述)?
答案 1 :(得分:1)
@Matthew's answer可能有助于解决您的初始问题(可能会产生很大的性能成本),但如果您的目标文件依赖于顺序,那么您似乎遇到了非正交设计的问题。