日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Ubuntugcc錯(cuò)誤:對(duì)'log'等函數(shù)未定義的引用

ubuntu gcc錯(cuò)誤:對(duì)'log'等函數(shù)未定義的引用

成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

a.c
#include
#include
int main()
{
    float a;
    void print_logarithm(double);
    printf("enter a num:");
    scanf("%f",&a);
    print_logarithm(a);
    return 0;
}
void print_logarithm(double x)
{
    if(x<=0.0)
    {
        printf("Positive numbers only,please.\n");
        return;
    }
    printf("The log of x is %f",log(x));
}

Ubuntu gcc編譯

直接命令gcc -Wall a.c

1 linuxidc.com@linuxidc:~$ gcc -Wall a.c
2 /tmp/ccmKjOLq.o:在函數(shù)‘print_logarithm’中:
3 a.c:(.text+0x97):對(duì)‘log’未定義的引用
4 collect2: error: ld returned 1 exit status

查了一下發(fā)現(xiàn):主要是C/C++編譯為obj文件的時(shí)候并不需要函數(shù)的具體實(shí)現(xiàn),只要有函數(shù)的原型即可。但是在鏈接為可執(zhí)行文件的時(shí)候就必須要具體的實(shí)現(xiàn)了。驗(yàn)證如下:

1 linuxidc.com@linuxidc:~$ gcc -Wall -c a.c
2 linuxidc.com@linuxidc:~$ gcc -Wall -o a a.o
3 a.o:在函數(shù)‘print_logarithm’中:
4 a.c:(.text+0x97):對(duì)‘log’未定義的引用
5 collect2: error: ld returned 1 exit status
6 linuxidc.com@linuxidc:~$ 

編譯時(shí)沒(méi)有問(wèn)題,鏈接生成可執(zhí)行文件時(shí)報(bào)錯(cuò)。接下來(lái)加上-lm。 鏈接成功,如下:

1 linuxidc.com@linuxidc:~$ gcc -Wall -o a a.o -lm
2 linuxidc.com@linuxidc:~$ 

這個(gè)主要的原因是gcc編譯的時(shí)候,各個(gè)文件依賴順序的問(wèn)題。在gcc編譯的時(shí)候,如果文件a依賴于文件b,那么編譯的時(shí)候必須把a放前面,b放后面。

注意2:sqrt()函數(shù)也是頭文件中的函數(shù),但sqrt函數(shù)的使用沒(méi)有以上限制,即編譯時(shí)不加-lm也可以。

CentOS6.5升級(jí)手動(dòng)安裝GCC4.8.2  http://www.linuxidc.com/Linux/2015-01/112595.htm 

Ubuntu升級(jí)GCC版本 http://www.linuxidc.com/Linux/2016-11/136840.htm

CentOS7環(huán)境下在/離線安裝GCC與GCC-C++  http://www.linuxidc.com/Linux/2017-03/142319.htm

Ubuntu 16.04 LTS 降級(jí)安裝GCC 4.8  http://www.linuxidc.com/Linux/2017-03/142299.htm

本文永久更新鏈接地址:http://www.linuxidc.com/Linux/2017-09/147168.htm


名稱欄目:Ubuntugcc錯(cuò)誤:對(duì)'log'等函數(shù)未定義的引用
本文路徑:http://www.5511xx.com/article/coeidgc.html