对JNI_CreateJavaVM'的未定义引用在voce.h中

时间:2015-11-16 13:04:25

标签: c++ java-native-interface

我正在尝试创建一个可以检测语音的程序,所以我下载了voce来帮助它。在我包含所有包之后,我收到错误undefined reference to 'JNI_CreateJavaVM'。我搜索了它,并且我找不到有效的解决方案。

我使用Code :: Blocks IDE和GNU GCC作为编译器。

1 个答案:

答案 0 :(得分:0)

听起来你没有使用所需的链接器信息编译它。

要在其他编译器选项之后执行此操作,您需要添加以下内容:

gcc -o myapp -I<path-to-jni-include-files> myapp.c -L <path-to-libjvm.so> -ljvm

-L告诉链接器(编译器将这些选项传递给链接器)在哪里找到它需要的共享库,-ljvm告诉链接器实际期望引用libjvm .so共享库(因为它将在Linux上调用)。

请注意,当前的gcc版本需要命令行末尾的链接器选项。曾几何时,你可以按照自己喜欢的顺序放置它们。现在他们必须在最后。