1

LinuxのNASMでC関数「exp」を実装しようとしています。この関数は double 値 x を取り、double 値 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'

これは、「extern exp」がうまく機能しているように見えるため、実際に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 に答える