[問題] 未定義參考到「sqrt」

看板C_and_CPP (C/C++)作者 (jimmy88224)時間12年前 (2013/06/19 22:03), 編輯推噓7(7014)
留言21則, 14人參與, 最新討論串1/1
編譯器:gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 #include<stdio.h> #include<math.h> main(){ int a,b,c,x1,x2,temp; while( scanf("%d%d%d",&a,&b,&c) != EOF ){ if(b*b-4*a*c<0){ printf("No real root\n"); continue; } x1=( b*-1 + sqrt(b*b-4*a*c) )/(2*a); x2=( b*-1 - sqrt(b*b-4*a*c) )/(2*a); if(x1==x2){ printf("Two same roots x=%d\n",x1); }else if(x1>x2){ printf("Two different roots x1=%d , x2=%d\n",x1,x2); }else if(x2>x1){ printf("Two different roots x1=%d , x2=%d\n",x2,x1); } } return 0; } 編譯後出現 /tmp/ccCnZ6KH.o: In function `main': a006.c:(.text+0x89): 未定義參考到「sqrt」 a006.c:(.text+0x101): 未定義參考到「sqrt」 collect2: 錯誤: ld 回傳 1 該怎麼辦? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.46.98

06/19 22:05, , 1F
請在編譯指令上加 -lm (都是字母)
06/19 22:05, 1F

06/19 22:14, , 2F
輸入的值都會讓兩個根都是整數根嗎?
06/19 22:14, 2F

06/19 22:37, , 3F
型態問題?
06/19 22:37, 3F

06/19 23:35, , 4F
整數 -> 小數?
06/19 23:35, 4F

06/20 00:24, , 5F
linker say : symbol not found!
06/20 00:24, 5F

06/20 00:29, , 6F
說不定用0x5f3759df會比sqrt還快… 0.0!"
06/20 00:29, 6F

06/20 00:51, , 7F
換cmath?
06/20 00:51, 7F

06/20 01:17, , 8F
(double)
06/20 01:17, 8F

06/20 02:34, , 9F
錯誤輸出中文化害人不淺, 用英文找資料一堆 (一樓正解)
06/20 02:34, 9F

06/20 02:35, , 10F
附上 StackOverflow 詳解 http://goo.gl/15Czh
06/20 02:35, 10F

06/20 08:47, , 11F
其實就是直譯 undefined reference XD
06/20 08:47, 11F

06/20 10:23, , 12F
orz 話說回來怎翻譯比較好?sqrt這參考 未定義?
06/20 10:23, 12F

06/20 10:37, , 13F
翻成 "林北找不到sqrt啦 淦" 俗又有力 = =+
06/20 10:37, 13F

06/20 19:39, , 14F
請問-lm 是什麼意思
06/20 19:39, 14F

06/20 19:44, , 15F
參考 lib_math ?
06/20 19:44, 15F

06/20 20:36, , 16F
跟compile說要去舔一下libm.so or libm.a (誤
06/20 20:36, 16F

06/20 23:32, , 17F
licker(?)
06/20 23:32, 17F

06/21 00:42, , 18F
他都說 .o 有問題就不是編譯器的問題了,基礎要複習了?
06/21 00:42, 18F

06/21 01:20, , 19F
-l 是告訴linker需要連結到額外的函式庫,m 是函式庫檔名
06/21 01:20, 19F

06/21 01:21, , 20F
m 就是 libm.so (動態) 或 libm.a (靜態)
06/21 01:21, 20F

06/22 09:10, , 21F
用eclipse_cdt就不用擔心設定編譯參數
06/22 09:10, 21F
文章代碼(AID): #1HmReM1e (C_and_CPP)
文章代碼(AID): #1HmReM1e (C_and_CPP)