2010-09-06 34 views
1

J'ai téléchargé le jdk-6u21-linux-x64-rpm.bin de Sun et installé le Java. Pendant l'exécution, le rpm extrait est jdk-6u21-linux-amd64.rpm. Je suis en train de construire une application qui nécessite libjvm.so. Et dans le JDK au-dessus se trouve dans /usr/java/jdk1.6.0_21/jre/lib/amd64/server/libjvm.so En conséquence, je reçois une erreur de compilation comme suit:Requis JDK 1.6 rpm pour x64 Redhat

-lpegcommon -L/usr/java/jdk1.6.0_21/jre/lib/amd64/serveur -ljvm -ldl -lpthread -lcrypt
/usr/bin/ld: ignorer l'incompatibilité /usr/java/jdk1.6.0_21/jre/ lib/amd64/server/libjvm.so lors de la recherche -ljvm
/usr/bin/ld: ne peut pas trouver -ljvm
collect2: ld retourné 1 état de sortie

où puis-je trouver un rpm pour x86_64 JDK? ou un rpm où le fichier libjvm.so est installé dans
/usr/java/jdk1.6.0_21/jre/lib/x86_64/server/libjvm.so?

Merci,

Répondre

0

Depuis finalement, il est un régime que vous installez, vous pouvez déplacer le contenu du régime où vous voulez.

Liste le contenu du RPM: rpm -qpl jdk-6u21-linux-amd64.rpm, puis pour chaque répertoire de base (/ etc,/usr, \ etc, \ etc) vous utilisez une instruction de relocalisation. Supposons que le RPM contienne des fichiers dans/etc et/usr/sbin, puis pour relocaliser/usr/sbin dans/usr/local/sbin, vous utiliserez rpm -i --relocate /usr/sbin=/usr/local/sbin jdk-6u21-linux-amd64.rpm.

1

Le RPM est correct. À mon humble avis, avez-vous vérifié les droits d'accès au chemin continue libjvm.so? Est-ce r-x pour l'utilisateur actuel?

Vous pouvez également essayer de ne pas mélanger les commutateurs "-L" et "-l" (avoir tout -L avant tout -l dans votre commande link) car gcc ne semble pas apprécier ce mélange.