Требуется JDK 1.6 об / мин для x64 Redhat - PullRequest
1 голос
/ 06 сентября 2010

Я скачал jdk-6u21-linux-x64-rpm.bin от Sun и установил Java.Во время выполнения извлекается rpm-файл jdk-6u21-linux-amd64.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 / server / libjvm.so при поиске -ljvm
/ usr / bin / ld: невозможно найти -ljvm
collect2: ld вернул 1 состояние выхода

где я могу найтиJDK об / мин для x86_64?или RPM, где libjvm.so установлен в
/usr/java/jdk1.6.0_21/jre/lib/x86_64/server/libjvm.so?

Спасибо,

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

RPM в порядке.

ИМХО вы проверяли права доступа к пути, ограничивающему libjvm.so?Это rx для текущего пользователя?

Также вы можете попробовать не смешивать переключатели "-L" и "-l" (иметь все -L перед любым -l в вашей команде ссылки), потому что gcc, кажется, неочень ценю это смешение.

0 голосов
/ 06 сентября 2010

Поскольку, в конечном счете, вы устанавливаете 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.

...