2010-05-28 112 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拋售它的閱讀哪些文件。