亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使包含math.h標頭,為什么也會出現“對sqrt的未定義引用”錯誤?

即使包含math.h標頭,為什么也會出現“對sqrt的未定義引用”錯誤?

C
一只名叫tom的貓 2019-12-11 16:09:27
我是C語言的新手,我有以下代碼:#include <stdio.h>#include <math.h>int main(void){  double x = 0.5;  double result = sqrt(x);  printf("The square root of %lf is %lf\n", x, result);  return 0;}但是當我用以下命令編譯時:gcc test.c -o test我收到這樣的錯誤:/tmp/cc58XvyX.o: In function `main':test.c:(.text+0x2f): undefined reference to `sqrt'collect2: ld returned 1 exit status為什么會這樣?是sqrt()不是在math.h頭文件?我cosh和其他三角函數遇到相同的錯誤。為什么?
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

您需要使用鏈接-lm器選項鏈接


您需要編譯為


gcc test.c  -o test -lm

歷史上,默認情況下,gcc(非g ++)在鏈接時不會包含數學函數。它還已從libc分離到單獨的庫libm中。要使用這些功能,你必須通知鏈接到包含鏈接庫-l鏈接選項,后跟庫名m這樣-lm。



查看完整回答
反對 回復 2019-12-12
  • 3 回答
  • 0 關注
  • 464 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號