【问题标题】:jni.h not found even after adding -l to gcc即使在将 -l 添加到 gcc 后也找不到 jni.h
【发布时间】:2015-01-23 03:25:33
【问题描述】:

我遇到了这个致命错误

杰尼h:没有这样的文件或目录 编译终止。

我输入的命令是

root@kali:/home/work#g++ -l/usr/lib/jvm/java-6-openjdk-i386/include -l/usr/lib/jvm/java-6-openjdk-i386/include/linux -o libhello.so Hello.c

【问题讨论】:

  • -l 选项(如小写 l)和 -I(如大写 i)选项做不同的事情。 -l(小写l)为链接器添加库搜索路径,-I(大写“i”)为预处理器添加搜索路径以查找头文件。
  • 看在上帝的份上,请不要以root身份编译。
  • @bash0r,只是好奇,为什么不作为 root 编译?
  • @SaurabhMeshram 你能控制编译器输出不会覆盖一些非常重要的系统文件吗?你不能,根可以做任何事情。在最坏的情况下,您的系统将无法启动,或者 - 更糟糕的是 - 会破坏一些非常重要的数据,因为编译器输出已经覆盖了一些文件。让一个单独的用户编译源代码并在编译后进入 root shell 进行 make install 为您的系统提供了良好的保护屏障。

标签: java c java-native-interface


【解决方案1】:

应该是-I/usr/lib/jvm/java-6-openjdk-i386/include/linux

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多