現在、solaris9でWebAlizerというツールをインストールしようとしています。しかし、make時に以下のようなエラーが出てしまいます。どのように、対応したらよいでしょうか?
# make
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c webalizer.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c hashtab.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c linklist.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c preserve.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c dns_resolv.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c parser.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c output.c
gcc -Wall -O2 -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -I/usr/local/include -c graphs.c
gcc -L/usr/local/lib -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o output.o
dns_resolv.o graphs.o -lgd -lpng -lz -lm
未定義の 最初に参照している
シンボル ファイル
libiconv_close /usr/local/lib/libgd.so
libiconv_open /usr/local/lib/libgd.so
libiconv /usr/local/lib/libgd.so
ld: 重大なエラー: シンボル参照エラー。webalizer に書き込まれる出力はありません。
collect2: ld returned 1 exit status
make: *** [webalizer] Error 1
環境は、Solaris9、gcc3.4.2です。
よろしくお願いいたします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
No.2 の方とほぼ同じ回答なのですが、
Makefileの以下の項目に'-liconv'を付け加えるか、
CFLAGS = -liconv
LDFLAGS = -liconv
configure する前に、環境変数
CFLAGS と LDFLAGS
に
'-liconv'
を設定してみてはいかがでしょうか。
No.4
- 回答日時:
すみません、訂正です。
>またSolaris純正のiconv(),iconv_open(),iconv_close()はlibcに含まれます。
と書きましたが、問題となっているのは
libiconv(),libiconv_close()、libiconv_open()でした。
よって「-lc をリンクオプションに追加してみるか」と言うのは間違いです。
No.3
- 回答日時:
libgd.soはSolaris標準のライブラリではありませんので後からユーザによって導入したモノだと思われます。
またSolaris純正のiconv(),iconv_open(),iconv_close()はlibcに含まれます。
-lc をリンクオプションに追加してみるか、
GNU版のlibiconvを/usr/local/lib あたりに放り込んで-liconvすると吉かもしれません。
No.2
- 回答日時:
Makefileを編集し、CFLAGSの項目に
-lconv
を付け加えてみてください。
1の方の指摘通り、リンカのエラーですが、足らないのは
libgd.soではなく、libgd.soが呼んでいるlibiconv_openなどのシンボルです。
これらのシンボルは普通libconv.soで定義されているので、このファイルがインストールされていなければ、探してください。
でも、たぶんインストールされていると思います。
この回答への補足
ご回答ありがとうございました。
早速、-lconvを付加してmakeを行ったのですが、以下のような結果となりました。
# make
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c webalizer.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c hashtab.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c linklist.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c preserve.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c dns_resolv.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c parser.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -c output.c
gcc: -lconv: linker input file unused because linking not done
gcc -Wall -O2 -lconv -DETCDIR=\"/etc\" -DHAVE_MATH_H=1 -I/usr/local/include -c graphs.c
gcc: -lconv: linker input file unused because linking not done
gcc -L/usr/local/lib -o webalizer webalizer.o hashtab.o linklist.o preserve.o parser.o output.o
dns_resolv.o graphs.o -lgd -lpng -lz -lm
未定義の 最初に参照している
シンボル ファイル
libiconv_close /usr/local/lib/libgd.so
libiconv_open /usr/local/lib/libgd.so
libiconv /usr/local/lib/libgd.so
ld: 重大なエラー: シンボル参照エラー。webalizer に書き込まれる出力はありません。
collect2: ld returned 1 exit status
make: *** [webalizer] Error 1
なお、libiconv.soファイルはインストールされていました。
引き続き、アドバイスいただけると幸いです。よろしくお願いいたします。
No.1
- 回答日時:
Solarisにはあまり詳しくないのだが、ldというのはリンカなので、ライブラリが見つからないのではないだろうか。
libgd.soというファイルを探すべし。あれば、そいつを/usr/local/libにコピーするかシンボリックリンクをはれば良い。無ければどこかからか探してきてください。
今はconfigure、makeで一発インストールできるものが多いが、せめて原理は一通り押さえておきたい。
configure:簡単に言うとMakefileを作る
make:Makefileを元にコンパイルやリンク、ファイルの移動・削除を行う
gcc:Cコンパイラ、C言語のプログラムを中間コードに変換する
ld:リンカ、各種中間コードを一つにまとめて、実行ファイルを作成する
この回答への補足
早速のご回答ありがとうございます。
findで調べてみたのですが、すでに、/usr/local/lib配下に、libgd.soは含まれているようです。
困りました・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- Ruby Ruby / passenger のインストールについて 1 2023/01/30 18:31
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- Ruby 教えてください 2 2023/01/04 17:50
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソースファイルのアンインスト...
-
*** ターゲット `all' を make ...
-
make でエラー
-
macos での /usr/local/lib と...
-
gccのインクルードパスの確認
-
makeコマンドができない
-
Linuxのgccのインクルードパス?
-
FedoraCoreでのコンパイル失敗
-
OpensslのVer.ダウン
-
PHP5ビルド時のundefined refer...
-
makeの際、 Killedとなったり...
-
Apacheのバージョンアップ方法
-
linuxの/usr/includeについて
-
ソースからmakeした場合の削除方法
-
MacにEZRがインストールできません
-
Vine Linuxでgoogle chromeを使...
-
perlのダウングレード方法
-
MYSQLのmakeができない!(Redha...
-
FreeBSD 8.0-p2にXウインドウを...
-
富士通 ESPRIMO B532/G のBIOS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
makeコマンドができない
-
gccのインクルードパスの確認
-
He had his daughter make some...
-
*** ターゲット `all' を make ...
-
Linuxのgccのインクルードパス?
-
make でエラー
-
perlのダウングレード方法
-
OpensslのVer.ダウン
-
Debianでのmakeコマンドインス...
-
ソースからmakeした場合の削除方法
-
Apacheのバージョンアップ方法
-
macos での /usr/local/lib と...
-
Mac上でPythonのtkinterを使っ...
-
PHP5ビルド時のundefined refer...
-
solarisのmakeについて
-
linuxの/usr/includeについて
-
make pycaffe実行時に発生する#...
-
bindインストール後、/etc/name...
-
gdbをインストールできない
-
readline インストールについて
おすすめ情報