gpt4 book ai didi

linux库问题

转载 作者:IT王子 更新时间:2023-10-29 01:11:14 25 4
gpt4 key购买 nike

在场的各位,我正在编写一个 c 代码,当我编译它时有一个奇怪的问题。源码没问题。我使用以下选项编译它:

$ gcc above_sample.c -I/home/hadoop/project/hadoop-0.20.2/src/c++/libhdfs -L/home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib -lhdfs  -o above_sample.

但它显示的结果是这样的:

/usr/bin/ld: warning: libjvm.so, needed by /home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib/libhdfs.so, not found (try using -rpath or -rpath-link) /home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib/libhdfs.so: undefined reference to `JNI_CreateJavaVM@SUNWprivate_1.1' 
/home/hadoop/project/hadoop-0.20.2/c++/Linux-amd64-64/lib/libhdfs.so: undefined reference to `JNI_GetCreatedJavaVMs@SUNWprivate_1.1'
collect2: ld returned 1 exit status

我搜索了 libjvm.so 我在我的系统中的/usr/java/lib 中找到了它。

我创建了它的符号链接(symbolic link),但没有用。

我将库复制到几个地方,比如 usr/lib 检查 LD_library_Path但无法编译程序,它一次又一次地显示相同的错误

谁能告诉我我做错了什么?如何将 .so 文件链接到 gcc?或者 .so 文件如何在程序中链接?

最佳答案

尝试添加:

-L/usr/java/lib

对于您的链接器命令,因为这是您的链接器无法找到的库:I_GetCreatedJavaVMs@SUNWprivate_1.1

一点建议:乱用 LD_LIBRARY_PATH 不是个好主意。只需修复您的链接器命令即可。

关于linux库问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790085/

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