获取无法打开共享对象文件:运行时没有此类文件或目录错误

时间:2014-11-04 05:13:39

标签: java c linux debugging gcc

我已经成功编译了文件,但现在我收到了以下错误

export LD_LIBRARY_PATH=/opt/mcr/v717/sys/java/jre/glnxa64/jre/lib/amd64/server/:D_LIBRARY_PATH
./invoke
./invoke: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
make: *** [run] Error 127

我已检查过库路径,仍然收到此错误。请建议我一些好的解决方案以及一些概念性信息。

run: Prog.class invoke
        export LD_LIBRARY_PATH=/opt/mcr/v717/sys/java/jre/glnxa64/jre/lib/amd64/server/:$LD_LIBRARY_PATH
        ./invoke

1 个答案:

答案 0 :(得分:0)

仔细查看输出结果:

export LD_LIBRARY_PATH=/opt/...blah...:D_LIBRARY_PATH
                                       ^
here-----------------------------------'

Make已将$L解释为make变量,并使用空字符串对其进行扩展。

另一个问题是从子shell导出变量可能是无效的。

你需要"逃避" $$$,并将两者合并为一个命令:

run: Prog.class invoke
        env LD_LIBRARY_PATH=/opt/mcr/v717/sys/java/jre/glnxa64/jre/lib/amd64/server/:$$LD_LIBRARY_PATH ./invoke

注意:我已将export更改为env,如果不明显的话。