2014-09-03 25 views
0

增加此標誌-nostdlib,在代碼編譯後,我得到錯誤的加粗顯示使用-nostdlib之後獲取未解析的符號?

_d_itod從Analogs.o

_d_mul從Analogs.o

_d_sub from Analogs.o

_d_dtof從Analogs.o

_f_ftod從Analogs.o

_d_div從Analogs.o

我無法弄清楚,爲什麼這些錯誤來了,如果我刪除這個庫我的軟件代碼正在編譯時沒有提供任何錯誤。

可以幫我解決這個問題。

回答

3

-nostdlib不是庫,它是編譯器/鏈接器指示它不應該在可執行文件中包含標準庫的指示。

如果你需要東西來自標準庫,你不應該使用這個標誌。

如果你不認爲應該使用它們,你需要找出使用它們的東西,並停止它。

根據錯誤,Analogs.o(其中可能是來自Analogs.cpp)正在請求這些函數。如果你對該代碼有控制權,你可以找到另一種方式來實現它的目的,沒有這些功能。或者,無論您是否控制它,您都可以自己提供這些功能,而不是依賴於標準庫。

+0

謝謝你的回覆,但是請你告訴我,如果我想用這個標誌-nostdlib,我將如何刪除這些錯誤。我無法弄清楚爲什麼這些未解決的符號正在爲.. – Deadlock 2014-09-03 05:45:41

+4

@Deadlock就像問「如果我不想使用螺絲刀,我應該如何得到這個螺絲?」。 – 2014-09-03 05:53:49

+0

@Deadlock:爲答案增加了一些肉,希望涵蓋您的查詢。 – paxdiablo 2014-09-03 05:53:50