2014-01-21 47 views
2

是否有用於忽略未定義參考的編譯器選項?我在Linux下編譯C++代碼。忽略C++中的未定義參考

+7

爲什麼忽略當你可以修復? - http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-doi-i-fix –

+1

忽略這些錯誤的唯一方法是看看別的地方;)的 – Trenin

+0

可能重複[GCC能不抱怨未定義的引用?](http://stackoverflow.com/questions/5555632/can-gcc-not-complain-about-undefined-references) –

回答

10

不,這是不可能的。鏈接器物理上不能生成具有未定義引用的輸出可執行文件。這不是鏈接器的選擇。

這有點像說,「對此列表進行排序,但我不會告訴你的名單是什麼」或「解決我的問題,但我只甩了代碼」。

+4

上無反射你的答案,但這是什麼是瘋了。 100分明確說明你今天做出的明顯和一些答案,花費時間和想法將得到20分。 – Duck

+1

永不言敗。一些鏈接器可讓您將.o文件合併到一個新的.o文件中。當然這個新的.o文件將有未定義的引用。 –

+0

雖然.o不是可執行文件。 – thecoshman

3

您還沒有編譯,你是鏈接。當您正在鏈接的程序調用未在您鏈接的程序部件內定義的函數時,會發生未定義的引用錯誤。忽略那個錯誤意味着程序會調用一個不存在的函數 - 然後會發生什麼?

那麼簡單的答案是:世界上沒有這樣的選項,那就沒有意義了。

1

編譯已經這樣做忽略未定義的引用,頗受設計。

1

對於下面我假設你指的是鏈接錯誤,不是編譯器錯誤。 看看這個: Can GCC not complain about undefined references?

這對我來說非常有用,因爲我寫這是在C文件中使用了一堆東西測試用例。對我來說問題是在這個相同的C文件中定義了函數,其中包含對未定義函數的引用。也就是說,在我有限的測試範圍內,它們對我來說是未定義的,但我沒有調用這些函數。 因此,我希望它編譯和鏈接沒有錯誤。 還有其他的解決方案,如:Is there a way to ignore an unused undefined references? 但我無法得到它的工作(可能是因爲我有一箇舊版本的gcc)