- PR -

RedHatLinux9のコンパイル問題

1
投稿者投稿内容
もらん
会議室デビュー日: 2003/06/25
投稿数: 9
お住まい・勤務地: 九州の田舎です
投稿日時: 2003-06-25 20:22
こんにちは、
下でもqmailがmake途中にエラーがでて、とまってしまうというのがありましたが、
そのレスが非常に参考になりました。
サイトを巡りいくつかパッチをあてて(ファイルを編集してもできるそうです)
回避をしましたが、また問題が発生しました。
tcpserverをコンパイルするとき、同じエラーがでました。
しかし、今度はそのエラーがでるファイルがバイナリだったので、
編集できません。パッチも見当たらないし・・

これで、インストールがとまっています。
皆さんは、こういうとき、どうされているのでしょうか?
まだredhat9は入れないほうがよかったかな?
藍空
常連さん
会議室デビュー日: 2003/06/24
投稿数: 49
投稿日時: 2003-06-25 21:09
こんにちは。

実際にやってみていなくて申し訳ありません。
tcpserverということは、「ucspi-tcp」に含まれるtcpserverを利
用されているのですよね?

そうであるならば、ソースファイル(ucspi-tcp-0.88.tar.gz)は
お持ちですか?

お持ちであるならば、先日紹介させていただいた、

 http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/

以下にある、

 ucspi-tcp-0.88.a_record.patch
 ucspi-tcp-0.88.errno.patch
 ucspi-tcp-0.88.nobase.patch

の3つのpatchを適用することでコンパイルできると思います。
# 手元のRedHat9ではできました。
もらん
会議室デビュー日: 2003/06/25
投稿数: 9
お住まい・勤務地: 九州の田舎です
投稿日時: 2003-06-26 12:54
藍空さん、ありがとうございます!
私が見逃していたんですね・・・
すみません。
まさにucspi-tcp-0.88.tar.gzを利用するところです。
ありがとうございます。

qmailをいれて、
tcpserver無しでpopやsmtpがやりたいなと
おもったのですが、なかなかドキュメントがなく、
あきらめてtcpserverを入れることにしたのでした。

qmailに関しては、
http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/
の、qmail-1.03.errno.patch
だけではだめで、
http://article.gmane.org/gmane.mail.qmail.general/13960
のパッチらしき記述をファイルに書き込み3つ
パッチを当てたらなりました。
でも警告がたくさんでました。
なにか間違っているかもしれませんが・・(TT

的確なアドバイス、ありがとうございました!
[-R-]
会議室デビュー日: 2003/06/26
投稿数: 2
投稿日時: 2003-06-26 13:54
パッチを当てなくても、直接ソース編集でも大丈夫です。

基本的にエラーがでるのは、

extern int errno;

の個所なので、こいつを1行コメントアウトして、ヘッダに

#include <errno.h> と書けば、上手くいくと思います。

詳しくは

http://www.gnu.org/software/libc/FAQ.html

をご覧ください。

もらん
会議室デビュー日: 2003/06/25
投稿数: 9
お住まい・勤務地: 九州の田舎です
投稿日時: 2003-06-26 14:43
[-R-]さん、ありがとうございます。

いまはcheckpassword-0.90のコンパイルで、また
同じのが出ています(TT

unix.a(alloc.o)(.text+0x48): more undefined references to `errno' follow
collect2: ld はステータス 1 で終了しました
編集しようとしたら、これはhとかcファイルではないので、
@がたくさん出てきて、編集できない状態(?でした。
このような場合は、パッチを当てるしかないのかと思い、
 http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/
からもってこようとおもいます。

qmail関連は全てerro関係で変更が必要かな、大変です・・
[-R-]
会議室デビュー日: 2003/06/26
投稿数: 2
投稿日時: 2003-06-26 15:34
そのエラーは、コンパイル時のエラーではなくて、リンク時のエラーです。そして、
***.oファイルは、コンパイルされたバイナリです。ディレクトリを見ると、ほかにも
***.oというファイルがたくさんあると思いますが、それらをくっつけて一つの最終的な
バイナリが出来ますが、くっつけている途中でのエラーですね。

多分予想では、ソースを変更した後にリコンパイルしていなくて、***.oに変更が反映
されていないと思いますので、

rm -f *.o

で中間オブジェクトを消去してから、最初からコンパイルしてみてください。
1

スキルアップ/キャリアアップ(JOB@IT)