gpt4 book ai didi

java - 共享库 JNI 上 undefined reference

转载 作者:行者123 更新时间:2023-12-02 07:27:44 25 4
gpt4 key购买 nike

好的,所以我正在使用 JNI + C 开发一些东西,并且 java 代码调用 .c 上的方法,该方法使用另一个编译的 C 代码,因此 Java -> C -> C。

但是在运行时,如果我不使用第二个 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 $@ $<

感谢您的帮助

最佳答案

这是错误的:

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

来自documentation :

$<
The name of the first prerequisite.

你想要:

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

(所有先决条件的名称。)

关于java - 共享库 JNI 上 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com