0

さて、私はJNI + Cで何かを開発しています.Javaコードは、コンパイルされた別のCコードを使用する.cのメソッドを呼び出すので、Java -> C -> C.

しかし、実行時に2番目のCコードを使用しないと問題なく動作しますが、使用すると:

java: symbol lookup error: /home/adriano/Área de Trabalho/229/DFT/libDFT.so: undefined symbol: newComplex

newComplex が complex.h にある間

これは、共有ライブラリをコンパイルする方法です。

libDFT.so : DFT.o complex.o
gcc -shared -ansi -pedantic -Wall -O0 -g -ftest-coverage -fprofile-arcs -fPIC -I${JNI_INCLUDE} -I${JNI_INCLUDE}/linux/ -o $@ $<

助けてくれてありがとう

4

1 に答える 1

2

これは間違っています:

libDFT.so : DFT.o complex.o
        gcc -shared ... -o $@ $<

ドキュメントから:

$<最初の
前提条件 の名前。

あなたがしたい:

libDFT.so : DFT.o complex.o
        gcc -shared ... -o $@ $^

(すべての前提条件の名前。)

于 2012-11-11T06:40:46.680 に答える