2010-05-28 117 views
0

我在编译一个程序,其中头文件在多个地方定义。每个头文件的内容都不相同,尽管变量名是结构中相同的内部成员是不同的。gcc中链接的问题

现在,在链接时,它将从属于不同标题的库文件中拾取,而不是在编译期间使用的标头。由于这个原因,我在链接时遇到错误。

既然有这么多的同名图书馆,我不知道哪个图书馆被拿起。我有很多oems和其他自定义的库,这是这个版本的一部分。

我签出了gcc中的选项,其中讨论了选择不同的库文件被包括在内。但是,没有哪个地方能够看到哪个选项会谈论哪些库被链接器选中。

如果链接器能够找到多个库文件名,那么链接器拿起的是我无法理解的东西。我不想指定任何路径,而是想了解链接器如何解析它可以找到的多个库。我尝试了-v选项,但是没有列出gcc拿起库的路径。

我在linux上使用gcc。

在这方面的任何帮助,高度赞赏。

问候, 奇特拉

+1

如何在多个地方定义头文件?你的意思是“包括?”你遇到了什么错误? – WhirlWind 2010-05-28 16:35:06

+0

Plz添加链接器输出,可能还有你的makefile。 – 2010-05-28 16:35:56

回答

1

传递-Wl,-t到GCC会告诉LD抛售它的阅读哪些文件。