2010-09-06 109 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似乎不太喜歡這種混合。