🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.misc
Article #233

Re: Installation of Python1.5

#233
From: ISHIKAWA, Masahiro
Date: Fri, 23 Jan 1998 00:00
86 lines
4227 bytes
  石川@DB研.筑波大 と申します.

yuuichi@georg.jo.tomakomai-ct.ac.jp (KAWAGUCHI Yuuichi) writes:
> 川口@苫小牧高専といいます.
[snip]
> gcc -g -O2 -I./../Include -I.. -DHAVE_CONFIG_H   -c python.c -o python.o
> gcc   python.o \
> 	  -L.. -lpython1.5   -ldl  -lm -lc.1.9 -o python 
> collect2: ld returned 4 exit status
> ld: -lpython1.5: expected libx.so(.major.minor.xxx)
> 
> make[1]: *** [link] Error 1
> make[1]: Leaving directory `/usr/local/src/Python-1.5/Modules'
> make: *** [python] Error 1
> 
> ってなことで怒られます.このldのエラーは

あまり SunOS 4.x は触っていないし, その上で Python 1.5 をコンパイルした
事もなかったんですが, 
	SunOS 4.1.4 
	gcc 2.7.2
で試してみました. 

このエラーが発生する根本的な原因は分りませんでしたが, 一応こちらで
試してわかった事だけ書きます. 
エラーの回避法については最後に書きました. 

  こちらでも

    $ (cd Modules; gcc   python.o -L.. -lpython1.5   -lnsl -ldl -lm  -o python)
    collect2: ld returned 4 exit status
    ld: -lpython1.5: expected libx.so(.major.minor.xxx)

と, 同様のエラーになりました. 
-lpython1.5.a というオプションは -L.. で指定している Modules/.. に
出来ているはずの libpython1.5.a とリンクするためのものですので, 不
正なものではないと思うのですが... 
なぜだろう, と思いながら次のようにしてみると同様なエラーになりまし
た(-lnsl を -lnsl1.0 にして -lpython1.5 の前に持っていっただけ):

    $ (cd Modules; gcc python.o -L.. -lnsl1.0 -lpython1.5  -ldl -lm -o python)
    collect2: ld returned 4 exit status
    ld: -lnsl1.0: expected libx.so(.major.minor.xxx)

さらに次のようにしても同様のエラーになりました (-lmonty.python にし
た):

    $ (cd Modules; gcc python.o -L.. -lmonty.python -ldl -lnls -lm -o python)
    collect2: ld returned 4 exit status
    ld: -lmonty.python: expected libx.so(.major.minor.xxx)

存在しないライブラリを指定すると

    $ (cd Modules; gcc python.o -L.. -lmontypython -lnsl -ldl -lm -o python)
    collect2: ld returned 4 exit status
    ld: -lmontypython: No such file or directory

というメッセージになるはずですので, どうも -l オプションで指定する
ライブラリ名の中に `.' が入っているとこのようなエラーにされてしまう
ようです(この理由は分りません...).

  とりあえずこのエラーを避けるには

    $ (cd Modules; gcc python.o ../libpython1.5.a -ldl -lnls -lm -o python)

とすれば良いです. 
この部分だけ手でやるのも何ですので, Modules/Makefile.pre.in を次の
ように変更してから ./configure すればあとは make 一発で最後まで通る
と思います. 

135c135
< 		  -L.. -lpython$(VERSION) $(MODLIBS) $(LIBS) $(SYSLIBS) -o python $(LDLAST)
---
> 		  $(LIBRARY) $(MODLIBS) $(LIBS) $(SYSLIBS) -o python $(LDLAST)

P.S. 
  ご存知かも知れませんが ;-) 日本語で Python についての情報交換をす
  るためのメイリングリスト python-ml-jp というものがあります. 
  <A HREF="http://www.dblab.is.tsukuba.ac.jp/python-ml-jp/">
  ただ今(というかいつでも)参加者募集中です :-)

                                                                  /\
\\ 石川雅弘 ISHIKAWA, Masahiro                                // |==|
\\ 筑波大学大学院工学研究科 電子・情報工学専攻(博士後期1年)  // |DD|
\\ 筑波大学電子情報工学系 データベース研究室 tel 0298-53-5385 // /||\
Technical Details
Message-ID: <sqtafcn75vz.fsf@tierra.dblab.is.tsukuba.ac.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <YUUICHI.98Jan22151506@georg.jo.tomakomai-ct.ac.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 10b195,da0ec2e3fc2d9400
X-Google-Attributes: gid10b195,public
From: lunatic@tierra.dblab.is.tsukuba.ac.jp (ISHIKAWA, Masahiro)
Subject: Re: Installation of Python1.5
Date: 1998/01/23
Message-ID: <sqtafcn75vz.fsf@tierra.dblab.is.tsukuba.ac.jp>
X-Deja-AN: 318595694
Sender: lunatic@dbsv10
References: <YUUICHI.98Jan22151506@georg.jo.tomakomai-ct.ac.jp>
Mime-Version: 1.0 (generated by tm-edit 7.108)
Content-Type: text/plain; charset=ISO-2022-JP
Organization: Institute of Information Sciences & Electronics, University of Tsukuba, Japan
Newsgroups: fj.lang.misc