2010-08-24 59 views
5

如何在Ubuntu中使用pow()和sqrt()函數? 我已經包含math.h頭文件,但它仍然給我一個錯誤。如何在UNIX上使用pow()&sqrt()?

+2

你得到的錯誤是什麼? – 2010-08-24 17:32:12

+0

使用'pow'往往是一個錯誤。如果這些是你使用的唯一兩個數學函數(你需要'-lm'),你可能想要檢查你是否真的想要'pow'。如果指數總是一個整數,並且/或者如果基數是2,那麼有更好的方法(既速度更快,保證精確,與pow不同)。 – 2010-08-25 00:12:47

回答

7

鏈接到libm.so,將-lm添加到編譯器命令行參數中。

+0

好的,所以你的說法是......我應該在我的編譯器命令中加上-lm後的是否,是嗎? – Pavitar 2010-08-24 17:52:40

+0

是的,確切地說。 (填料)。 – 2010-08-24 18:24:55

+1

把'-lm'放在行尾,畢竟.o文件和其他庫。通常,將'-lsomething'放在所有.o文件後面,以便在從左向右閱讀該行時,鏈接器可以找到它應該包含的所有功能,而不必重新掃描該行。是的,有些環境支持任何順序,但根據這個經驗法則,當移動到不支持的平臺時,會爲您節省很多痛苦。請注意,例如,Windows上的大多數工具鏈都喜歡這個順序。 – RBerteig 2010-08-24 23:55:04

9

嘗試將-lm添加到您的鏈接器命令中。大部分數學函數都生活在libm中,需要明確鏈接。