武藤@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な話題など)