2014-07-08 163 views
0

我想編譯一個名爲randfold的程序,它處理RNA摺疊。但是在sudo make期間,我正在爲c程序收到以下消息。c編譯錯誤

params.o: In function `scale_parameters': 
params.c:(.text+0x160): undefined reference to `log' 
params.c:(.text+0x1bc): undefined reference to `log' 
fold.o: In function `HairpinE': 
fold.c:(.text+0x3981): undefined reference to `log' 
fold.o: In function `LoopEnergy': 
fold.c:(.text+0x3bd3): undefined reference to `log' 
fold.c:(.text+0x3dfa): undefined reference to `log' 
fold.o:fold.c:(.text+0x4f81): more undefined references to `log' follow 
collect2: ld returned 1 exit status 
make: *** [randfold] Error 1 

可能是這些錯誤的原因是什麼?

+0

請不要做'sudo make'!只是'做'!以「root」身份運行構建沒有任何意義,並且可能非常危險。 – unwind

+0

@jongware是的,它可能是。我找不到它,並且在這個論壇上有很多問題,我發現問這個問題更容易。我會更加小心 –

回答

5

在編譯(鏈接器)行的末尾添加-lm以與數學庫鏈接。

+0

你的意思是** sudo make -lm ** –

+0

@RahulUnnikrishnan不,編輯你的Makefile以添加'-lm' – ouah