1

我正在尝试在 Linux 的 NASM 中实现 C 函数“exp”。该函数接受一个双精度值 x,并返回一个双精度值 r = e^x,其中 e 是欧拉数。这是我的实现:

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 时,这很奇怪,因为“extern exp”似乎工作得很好。我做错了什么?

4

1 回答 1

0

通过http://www.linuxtopia.org/online_books/an_introduction_to_gcc/gccintro_17.html ....

我需要使用 gcc 执行以下操作:

gcc -m32 name.o -lm -o name

“-lm”标签是链接 C 数学库的快捷方式,它与标准库是分开的。

于 2014-02-17T18:51:34.237 回答