1

Sun から jdk-6u21-linux-x64-rpm.bin をダウンロードし、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/ をスキップしています-ljvm
/usr/bin/ldを検索すると lib/amd64/server/libjvm.so : -ljvm
collect2 が見つかりません: ld は 1 つの終了ステータスを返しました

x86_64 用の JDK rpm はどこにありますか? または libjvm.so が
/usr/java/jdk1.6.0_21/jre/lib/x86_64/server/libjvm.so にインストールされている rpm?

ありがとう、

4

2 に答える 2

1

RPMは大丈夫です。

IMHOは、libjvm.soに続くパスへのアクセス権を確認しましたか?現在のユーザーのrxですか?

また、「-L」スイッチと「-l」スイッチを混在させないようにしてみてください(リンクコマンドの-lの前にすべて-Lを付けてください)。gccはこの混合をあまり評価していないようです。

于 2010-09-06T17:24:30.440 に答える
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.

于 2010-09-06T11:37:24.180 に答える