[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:46840] Re: Xウィンドグラフィックライブラリをリンクしたしい−2



武藤@Debianぷろじぇくとです。

新しい話題を「返信」で起こすのも、特定の話題について毎回「新規」で起こす
のも、どちらも悪いことである、とご理解ください。

At Thu, 6 Jul 2006 11:36:14 +0900,
KenOka_hotmail wrote:
> g77のリンク時に -L・・・ を -l/usr/X11R6/lib/libX11.a としたら、
> 今度は、「collect2: ld はステータス 1 で終了しました」となり、
> 「man g77」や「man ld」を見ましたが、エラー内容が把握できません。
> 
> 何処を見たら、その原因が判るのでしょうか?

それでもやっぱりmanを見ればわかるはず?あとはセンスの問題になり
そうです。

man ldだと、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
-lar   アーカイブファイル ar をリンクするファイルのリストに加える。この
              オプションは何回でも指定できる。 ld は ar が指定されるごと に 、
              libar.a が見つかるまで検索パスを探す。


       -Lsearchdir
              こ のコマンドは searchdir を ld の書庫ライブラリの検索パスに追加
              する。このオプションは必要なだけ指定できる。

              デフォルトの検索パス (-L が指定されなかったときの検索パス) は ld
              が用いているエミュレーションのモードに依存する。また設定に依存す
              る場合もある。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
LANG=C man ldとすれば英語のほうでも読めますね。

       -larchive
       --library=archive
           Add archive file archive to the list of files to link.  This option
           may  be used any number of times.  ld will search its path-list for
           occurrences of "libarchive.a" for every archive specified.

           On systems which support shared libraries, ld may also  search  for
           libraries  with  extensions  other than ".a".  Specifically, on ELF
           and SunOS systems, ld will search a directory for a library with an
           extension  of  ".so"  before searching for one with an extension of
           ".a".  By convention, a ".so" extension indicates a shared library.

           The  linker will search an archive only once, at the location where
           it is specified on the command line.  If the archive defines a sym-
           bol  which  was  undefined in some object which appeared before the
           archive on the command line, the linker will include the  appropri-
           ate  file(s)  from the archive.  However, an undefined symbol in an
           object appearing later on the  command  line  will  not  cause  the
           linker to search the archive again.

(ふむ、英語のほうはだいぶアップデートされてるな…)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

-lにはlib〜.aのうち「〜」の箇所だけを指定します。
あるいは-lや-Lを指定せずに直接フルパスのアーカイブファイルをつけるか。

#ご購入いただいた書籍のp.313〜314に書いてあるんだけどな。
-- 
武藤 健志@ kmuto @ kmuto.jp
           Debian/JPプロジェクト   (kmuto@debian.org, kmuto@debian.or.jp)
           株式会社トップスタジオ  (kmuto@xxxxxxxxxxxxxxx)
URI: http://kmuto.jp/ (Debianな話題など)