- 締切済み
Solaris10へのPerlインストール時のエラー(ldのエラー?)について
Solaris10にPerlをインストールするため、以下のコマンドを実行したところ、 ### sh Configure -Dprefix=/usr/local/perl -Dcc=gcc -des ### 以下のエラーが発生しました。 ### I've tried to compile and run the following simple program: #include <stdio.h> int main() { printf("Ok\n"); exit(0); } I used the command: gcc -o try -O -fno-strict-aliasing try.c -lsocket -lnsl -ldb -ldl -lm -lc ./try and I got the following output: ld: 重大なエラー: ライブラリ -ldb: 見つかりません。 ld: 重大なエラー: ファイル処理エラー。try へ書き込まれる出力がありません。 collect2: ld returned 1 exit status I can't compile the test program. You have a BIG problem. Shall I abort Configure [y] Ok. Stopping Configure. ### 上記エラーの解決方法をご存知の方がいらっしゃいましたら、 ご教授いただきたいと思います。 なお、上記現象はPerl5.6.8およびPerl5.8.8のインストール時に 発生しました。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tatsu99
- ベストアンサー率52% (391/751)
ソースからインストールする必要がなければ、参考URLにperlの実行形式のプログラム(sprac solaris10用)がありますが、それをインストールするのが、簡単かと思います。 今回、あなたが、ソースからインストールすることにした理由に非常に興味があります。差し支えなければ、その理由を教えていただけませんでしょうか。
- tatsu99
- ベストアンサー率52% (391/751)
#2の方がいわれているようにlibdb.soの所在が不明なのが原因です。 以下の手順で、環境を設定して下さい。 1.libdb.soがどこにあるか検索する。 rootユーザーで以下のコマンドを実行。 # find / -name libdb.so 私の環境では、 /opt/SUNWdsee/ds6/lib/libdb.so が表示されました。 2.このディレクトリをLD_LIBRARY_PATHに追加します。 私の環境ではCシェルなので、以下のようにしました。 setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib:/opt/SUNWdsee/ds6/lib 上記、設定を生かすために、一旦ログアウトし、再度ログインし直します。その後、sh Configure -Dprefix=/usr/local/perl -Dcc=gcc -des を実行します。 私の環境では、上記の対応で、解決しました。
- entree
- ベストアンサー率55% (405/735)
> ld: 重大なエラー: ライブラリ -ldb: 見つかりません。 > ld: 重大なエラー: ファイル処理エラー。try へ書き込まれる出力がありません。 メッセージの通り、テスト用のプログラムを作成したがライブラリが見つからないために実行できないのでしょう。 libdb.so (Oracle Berkeley DB でしょう) はどこにインストールされていますか? 実行時に参照されるライブラリのパス (ライブラリを検索するディレクトリ) は通常は /lib と /usr/lib だけなので、その他のディレクトリに libdb.so がインストールされているのであれば実行時に LD_LIBRARY_PATH を設定するか、コンパイル時に rpath を設定する必要があります。 簡単なのは前者です。LD_LIBRARY_PATH=(libdb のディレクトリ) を設定してから再度 Configure してみてはいかがでしょうか。
- tatsu99
- ベストアンサー率52% (391/751)
私が回答できると言うわけではありませんが、 solaris10はsparc版ですかintel版ですか?
補足
sparc版です。 よろしくお願いします。