1
我正在嘗試在NASM for Linux中實現C函數「exp」。該函數採用double值x,並返回一個double值r = e^x,其中e是歐拉數。這是我的實現:C函數「Exp」如何在NASM for Linux中正確使用?
extern exp
SECTION .bss
doubleActual: resq 1
doubleX: resq 1
SECTION .text
main:
;some other code here
;calculate actual result
push doubleActual ; place to store result
push doubleX ;give the function what x is.
call exp
add esp, 8
在編譯的嘗試,我得到如下:
hw7_3.o: In function `termIsLess':
hw7_3.asm:(.text+0xf9): undefined reference to `exp'
這是指當我實際調用EXP,這是奇怪的,因爲「外部EXP」似乎工作正好。我做錯了什麼?
你鏈接到它定義的任何庫嗎? – delnan
使用NASM for linux,這通常不是必需的。例如,我可以「extern printf」,然後立即可以在代碼中使用「call printf」。我認爲這對C函數是獨一無二的。 – Drifter64
我的猜測是你需要'-lm'鏈接cmath庫。 – Michael