我在我的應用程序的鏈接過程中發現問題。我沒有與gcc 4.5相同的。它試圖將數學庫鏈接到以下命令。在GCC 4.6.1中鏈接數學庫(Ubuntu 11.10)
gcc -Wall -Wno-unused -MD -o mems_seektest mems_seektest.o -lm -L. -g -DASSERTS -I../src// -I../ -I../src//src -DDEBUG -lmems_internals
,並報告以下錯誤按摩:
undefined reference to `sqrt'
任何想法?
我不能重現這一點(在Linux中使用gcc 4.6.2),這個代碼與gcc 4.5一起構建? – birryree
@birryree當然,如果你使用'float test = sqrt(5);'這樣的東西,'因爲gcc會通過在編譯時計算結果來優化它。嘗試使用像'float test = sqrt(a);'這裏的a是一個變量,它的值只有在運行時才能知道。 – starrify
@PengyuCHEN - 我沒有使用常量,我知道gcc的常量摺疊。正如你所看到的,他已經在使用'-lm'標誌,所以你的答案重複了他所做的一切。 – birryree