cc 板条箱无法找到 libjvm.so 即使它是通过 RUSTFLAGS='-L' 提供的

  • 本文关键字:RUSTFLAGS so libjvm cc rust rust-cargo
  • 更新时间 :
  • 英文 :


我正在使用cc-rs构建一个rust/c混合项目:hdfs-jni

简而言之,HDFS -jni依赖于Apache Hadoop提供的libhdfs.so,而libhdfs.so本身依赖于libjvm.so,因为它是HDFS java方法的包装器。

In mybuild.rs:

我提供println!("cargo:rustc-link-search=all={}/jre/lib/amd64/server", val);指向包含libjvm.so的目录。

同样,我通过libjvm.sodir来测试:RUSTFLAGS='-L /usr/local/hadoop/lib/native' cargo test

但是,由于没有找到libjvm.so,测试构建仍然失败:

#21 13.19   = note: "cc" "-m64" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1001j4iwukq73jh5.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.10m3qv1glnl38rsh.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.14cw065uzcvckiyj.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.181812t0icrtp7m8.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1fb7c5scq0twwepu.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1fwnn1dcqdkl7o48.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1hyqpqn5uy6raw22.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1ka728zabzfj4of.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1lf4ae0xvnck7iof.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1lzadt4yo4mdrbxi.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1mpm6pdinko68z1y.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1mq5sjlsso74ge20.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1on0hlbx6hh6skxa.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1po1zb0ayboomcnj.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1qe4hvniy688p7ix.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1qqtajr0ximub582.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1r8noea4fwyofsh1.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.1vu5vkk8mfcdsf71.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.25emxujrtpuv873a.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.25uplz3nr4cz5pp0.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.26nwpz1yp9srjtet.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.26nzcxum7xr3pbot.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2awm21nl0qww8gr1.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2c3j6vmp7ndot4cg.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2dujg2cvxvenzxd3.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2g7texsfg10puh16.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2hjztk3051w23q77.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2mlygdj03pioh22u.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2okgolvbjbpoiwq7.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2owk0nl10kdkwifc.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2qjisuo1i7lyeuzw.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2rt9jtdi3d47muj.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2ya57fa01ghblvvj.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2yixq8pjrs2usgxe.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2zi65c7goeiho79a.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.2zwiag918crxdw0t.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.30jb1uxm9umq95ef.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.31kkxzq1miyzy6so.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.33l3y2892oukcpzn.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.33wf8enz1kzmqc7y.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.345ox6lnrzlknu6j.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.37f7eb268a9orp1b.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.39ohpizl4sy6yi4x.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3a01jib8lykxl02j.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3ab6hnrxqpg98pdx.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3bhh2r0z3sd13zm5.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3iy1pym8y5v19yrf.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3kidh3xy23c2apgs.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3rhzc4oanurt7y7p.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3s1x2u7xuhxx185e.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3tv5q6el3iys7a88.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3u7mp5myd0qt19y8.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3w4p1tuspdw8imzf.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3x6ekst41wxhbjv0.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.423gi0h0dwz819oe.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.46kenglex74yi3i4.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.46kz81jyjd5tf78t.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.498oknd6mksdbdy0.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.49tc239rmje0ni4c.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4bxkrrulm2ahcq8z.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4ctgxm7f470ebtjm.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4du9hrq3itfo1se2.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4gzvlb9srfo5dp49.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4i8yvpz7128hmpj9.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4jeiqzueltp75dvg.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4megktpe8niifxy.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4naap9hem7rk9dh8.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4nod5uy5csfwgfp0.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4sbmx8swissv8py7.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4t5sjr6eg9jyrkl8.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4tdzl46bn7j4b5jm.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4udm14hdj69h9jm8.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.4xgrxyzl6rkb1aqg.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.52eeed5xzgtvltq4.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.54bu2yvz9lkyhvok.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.54yvotr5sjx9t6bb.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.55fbfeec48ey7huh.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.56t48kr4f84a0rve.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.5769wl6vkrcj9qjg.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.5959l5y0si6n13h9.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.5b6eqahn0qh111n.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.5grpotenffhbij3o.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.5h6uyr2nls3551t.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.8aeqp39130bvgx3.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.ag7r8z21j961kxp.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.bnl6rlp1cupt935.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.bw34mz2m2wueh17.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.c9jlleaxwwrdotb.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.cnbymdhm99tyuwq.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.dkz9imqykhjk137.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.eezwbeyr4k1fg8s.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.eu9lxsvbut5y7wx.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.h5a6vl09dum99p1.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.jzbx8lvxcacud0x.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.kjh660mzswcbzbn.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.kp62cgb9kzqsv68.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.m1t6rk3phya204a.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.mk3y7hcd7l2o8xa.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.mm17mar66ql9wk3.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.olovc5g3if3tjzw.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.pke946lsjzj3o12.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.rpaqi82oth0pa5h.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.s8yg0446wnwbjrx.rcgu.o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531.3rsrv724cn9kbvnx.rcgu.o" "-Wl,--as-needed" "-L" "/tmp/hdfs-jni/target/debug/deps" "-L" "/usr/local/hadoop/lib/native" "-L" "/tmp/hdfs-jni/target/debug/deps" "-L" "/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/amd64/server/libjvm.so" "-L" "/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/amd64/server" "-L" "/usr/local/hadoop/lib/native" "-L" "/tmp/hdfs-jni/target/debug/build/hdfs-jni-f283b12092a2a6c6/out" "-L" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-lhdfs" "-Wl,-Bstatic" "-Wl,--whole-archive" "-lminidfs" "-Wl,--no-whole-archive" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-3599c5491d44663f.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-1d56ea45a67842c8.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-9749f7c936ebf9a7.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-627a220173eefff1.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-16ed15e5bfe21b9b.rlib" "/tmp/hdfs-jni/target/debug/deps/liburl-2030b2eccfa9f426.rlib" "/tmp/hdfs-jni/target/debug/deps/libidna-a43200e84c3cb34b.rlib" "/tmp/hdfs-jni/target/debug/deps/libunicode_normalization-f88ccced2be4bc93.rlib" "/tmp/hdfs-jni/target/debug/deps/libtinyvec-b0b99c866aca13aa.rlib" "/tmp/hdfs-jni/target/debug/deps/libtinyvec_macros-f6b5563d3767ea26.rlib" "/tmp/hdfs-jni/target/debug/deps/libunicode_bidi-154cf6eb613583e6.rlib" "/tmp/hdfs-jni/target/debug/deps/libform_urlencoded-44cac09508f6fc0a.rlib" "/tmp/hdfs-jni/target/debug/deps/libpercent_encoding-549c334c22432c49.rlib" "/tmp/hdfs-jni/target/debug/deps/libmatches-4bfbedf5881bce99.rlib" "/tmp/hdfs-jni/target/debug/deps/liblog-975203197fcf8dc1.rlib" "/tmp/hdfs-jni/target/debug/deps/libcfg_if-38c8a3e888ecb06a.rlib" "/tmp/hdfs-jni/target/debug/deps/liblibc-3d39ec8c446182a6.rlib" "/tmp/hdfs-jni/target/debug/deps/libthiserror-18247737637b9f79.rlib" "-Wl,--start-group" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-2420485b9e5ef5e1.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-785e3cb61c4b1960.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-087191a88bdaa22d.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9981842c02975178.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-6fb405869b015fde.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-d05c5c3c56004b7b.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-42d74d2097528b38.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-fb36534c113d2209.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-b56b9042c12b6535.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-491902d6cb3e76df.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-61834e0981b8c367.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f78aa99d613a55bc.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-53ee54cd7fed2c57.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-544ecdbd6cda3c58.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-379cc252b6943a79.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-8063eea38dcc5e62.rlib" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-5b228734afae15ee.rlib" "-Wl,--end-group" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d6c7a399d95d173f.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/usr/local/rustup/toolchains/1.54.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/tmp/hdfs-jni/target/debug/deps/hdfs-cec6944b3f9f1531" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs"

= note: /usr/bin/ld: warning: libjvm.so, needed by /usr/local/hadoop/lib/native/libhdfs.so, not found (try using -rpath or -rpath-link)
#21 13.19           /usr/bin/ld: /usr/local/hadoop/lib/native/libhdfs.so: undefined reference to `JNI_CreateJavaVM@SUNWprivate_1.1'
#21 13.19           /usr/bin/ld: /usr/local/hadoop/lib/native/libhdfs.so: undefined reference to `JNI_GetCreatedJavaVMs@SUNWprivate_1.1'
#21 13.19           collect2: error: ld returned 1 exit status

错误日志还说它在编译中有-Llibjvm.so。有人能解释一下cc编译会发生什么吗?

完整的可运行代码可以在https://github.com/yjshen/hdfs-jni上找到,可以简单地用./dev/build-hdfs-jni.sh重现问题。它使用构建一个安装了rust/hdfs的docker镜像,然后运行cargo test。

有人能指点我一下吗?谢谢!

-L编译器选项添加了链接器将搜索的路径,以链接通过-l选项直接引用的库。

它不影响查找这些库所依赖的其他库的路径-这些库由运行时链接器ld.so加载。

您可以使用ldd命令查看这些依赖项是如何找到的,例如:

ldd /usr/local/hadoop/lib/native/libhdfs.so

如果任何依赖库显示为not found,则意味着运行时链接器无法找到它们。

运行时链接器使用的机制是复杂的——更多信息请参考ld.so的手册页。一个快速的解决方法是将环境变量LD_LIBRARY_PATH设置为包含libjvm.so的目录,例如:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/jvm/java/jre/lib/amd64/server/

相关内容

最新更新