第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

未定義對(duì)sqrt的引用(或其他數(shù)學(xué)函數(shù))

未定義對(duì)sqrt的引用(或其他數(shù)學(xué)函數(shù))

C
慕姐4208626 2019-10-30 12:44:58
我有這個(gè)簡(jiǎn)單的代碼:max = (int) sqrt (number);在標(biāo)題中,我有:#include <math.h>但是應(yīng)用程序仍然說(shuō)未定義的引用sqrt。您在這里看到任何問(wèn)題嗎?看起來(lái)一切都應(yīng)該沒(méi)問(wèn)題。
查看完整描述

3 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可能會(huì)發(fā)現(xiàn)您必須與所使用的任何系統(tǒng)上的數(shù)學(xué)庫(kù)鏈接,例如:


gcc -o myprog myprog.c -L/path/to/libs -lm

                                       ^^^ - this bit here.

包括標(biāo)題讓編譯器知道函數(shù)的聲明,但它并沒(méi)有必然自動(dòng)鏈接到執(zhí)行該功能所需要的代碼。


否則,您需要向我們展示您的代碼,您的編譯命令和您正在運(yùn)行的平臺(tái)(操作系統(tǒng),編譯器等)。


以下代碼可以編譯和鏈接:


#include <math.h>

int main (void) {

    int max = sqrt (9);

    return 0;

}

請(qǐng)注意,某些編譯系統(tǒng)取決于在命令行上給出庫(kù)的順序。那樣的話,我的意思是它們可以按順序處理這些庫(kù),并且只能使用它們來(lái)滿足序列中該點(diǎn)上未解析的符號(hào)。


因此,例如,給定命令:


gcc -o plugh plugh.o -lxyzzy

gcc -o plugh -lxyzzy plugh.o

并且plugh.o需要xyzzy庫(kù)中的某些內(nèi)容,第二個(gè)可能無(wú)法正常工作。在列出庫(kù)的那一刻,沒(méi)有任何未解決的符號(hào)可以滿足。


當(dāng)從解析的符號(hào)plugh.o 都出現(xiàn),為時(shí)已晚。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是我的觀察,首先需要將標(biāo)頭math.h作為標(biāo)頭文件中sqrt()聲明的函數(shù)包括在內(nèi)math.h。例如


#include <math.h>

其次,如果您閱讀sqrt的手冊(cè)頁(yè),您會(huì)注意到該行-lm。


#include <math.h> /* header file you need to include */


double sqrt(double x); /* prototype of sqrt() function */


Link with -lm. /* Library linking instruction */

但是應(yīng)用程序仍然說(shuō)未定義對(duì)sqrt的引用。您在這里看到任何問(wèn)題嗎?


編譯器錯(cuò)誤是正確的,因?yàn)槟形磳⒊绦蚺c庫(kù)lm鏈接并且鏈接器無(wú)法找到的引用sqrt(),您需要顯式鏈接。例如


gcc -Wall -Wextra -Werror -pedantic test.c -lm


查看完整回答
反對(duì) 回復(fù) 2019-10-30
  • 3 回答
  • 0 關(guān)注
  • 979 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)