2010-09-06 73 views
1

我从Sun下载了jdk-6u21-linux-x64-rpm.bin并安装了Java。在执行过程中,得到的rpm是jdk-6u21-linux-amd64.rpm。x64 Redhat需要JDK 1.6 rpm

我想构建一个需要libjvm.so的应用程序。而在上述JDK它/usr/java/jdk1.6.0_21/jre/lib/amd64/server/libjvm.so 结果发现,我得到一个编译错误如下:

-lpegcommon -L/usr/java/jdk1.6.0_21/jre/lib/amd64/server -ljvm -ldl -lpthread -lcrypt
/usr/bin/ld:跳过不兼容/usr/java/jdk1.6.0_21/jre/ LIB/AMD64 /服务器/ libjvm.so为-ljvm
在/ usr/bin中/ LD搜索时:找不到-ljvm
collect2:LD返回1退出状态

我在哪里可以找到一个JDK转x86_64的?或者libjvm.so安装在
/usr/java/jdk1.6.0_21/jre/lib/x86_64/server/libjvm.so?

感谢,

回答

0

最终以来,这是您要安装RPM,可以重新定位,无论你想在RPM的内容。

列出RPM的内容:rpm -qpl jdk-6u21-linux-amd64.rpm,然后对每个基本目录(/ etc,/ usr,\ etc,\ etc)使用重定位语句。假设RPM包含/ etc和/ usr/sbin中的文件,然后将/ usr/sbin重定位到/ usr/local/sbin,您将使用rpm -i --relocate /usr/sbin=/usr/local/sbin jdk-6u21-linux-amd64.rpm

1

RPM是好的。

恕我直言,你检查了对libjvm.so路径的访问权吗?它是当前用户的r-x吗?

也可以尝试不混合“-L”和“-l”开关(在链接命令中的任何-l之前都有-L),因为gcc似乎不太喜欢这种混合。