linux下解決Unixbench安裝報(bào)錯(cuò)信息的問(wèn)題
運(yùn)行環(huán)境:
Ubuntu 16.04.3 x86_64
在Ubuntu下安裝運(yùn)行Unixbench時(shí),提示報(bào)錯(cuò)信息如下
gcc -o ./pgms/ubgears -DTIME -Wall -pedantic -ansi -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall ./src/ubgears.c -lGL -lXext -lX11
/usr/bin/ld: /tmp/ccnTgDEZ.o: undefined reference to symbol 'sincos@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:240: recipe for target 'pgms/ubgears' failed
make: *** [pgms/ubgears] Error 1
通過(guò)查閱資料,由于ubgears.c中會(huì)用到數(shù)學(xué)函數(shù),而實(shí)際運(yùn)行時(shí)找不到對(duì)應(yīng)的數(shù)學(xué)函數(shù),只需要在顯示調(diào)用函數(shù)函數(shù)庫(kù)即可,在Makefile中GL_LIBS 后添加-lm
使用ld -v查看ld工具版本
從binutils2.22開(kāi)始,ld開(kāi)始把–no-copy-dt-needed-entries默認(rèn)打開(kāi),這樣一來(lái),ld不會(huì)再自動(dòng)遞歸地解析鏈接的lib,而需要由用戶(hù)來(lái)一一指定。
會(huì)員登錄
賬號(hào)登錄還沒(méi)有賬號(hào)?立即注冊(cè)