diff options
Diffstat (limited to 'ja_JP.eucJP/man/man1/ld.1')
-rw-r--r-- | ja_JP.eucJP/man/man1/ld.1 | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/ja_JP.eucJP/man/man1/ld.1 b/ja_JP.eucJP/man/man1/ld.1 index 40623ee585..bfeb862524 100644 --- a/ja_JP.eucJP/man/man1/ld.1 +++ b/ja_JP.eucJP/man/man1/ld.1 @@ -1,8 +1,5 @@ -.\" %FreeBSD: src/contrib/binutils/ld/ld.1,v 1.9 2002/10/11 06:14:04 obrien Exp % .\" $FreeBSD$ -.\" -.\" -.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13 +.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13 .\" .\" Standard preamble: .\" ======================================================================== @@ -25,7 +22,6 @@ .. .de Ve \" End verbatim text .ft R - .fi .. .\" Set up some character translations and predefined strings. \*(-- will @@ -133,10 +129,10 @@ .\" ======================================================================== .\" .IX Title "LD 1" -.TH LD 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools" +.TH LD 1 "2002-10-30" "binutils-2.13" "GNU Development Tools" .UC .SH "名称" -ld \- \s-1GNU\s0 リンカ \s-1LD\s0 の使い方 +ld \- GNU リンカ LD の使い方 .SH "書式" .IX Header "書式" ld [\fBoptions\fR] \fIobjfile\fR ... @@ -185,6 +181,7 @@ ld: the \s-1GNU\s0 linker を参照してください。 .Vb 1 \& ld -o <output> /lib/crt0.o hello.o -lc .Ve +.PP これは、\f(CW\*(C`/lib/crt0.o\*(C'\fR と \f(CW\*(C`hello.o\*(C'\fR、そして 標準で検索されるディレクトリにあるライブラリ \f(CW\*(C`libc.a\*(C'\fR を リンクして、\fIoutput\fR という名前のファイルを生成することを \fBld\fR に @@ -257,6 +254,7 @@ ld: the \s-1GNU\s0 linker を参照してください。 .Vb 1 \& gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup .Ve +.PP これは重要です。 というのも、このようにしないと、コンパイラドライバプログラムは 何も言わずにリンカオプションを落してしまい、リンクが正しく @@ -1066,6 +1064,11 @@ no_undefined の実装は、未定義シンボルによって動的リンカが つまり、最も適切な memset 関数を動的に選択するのです。 どうやら \s-1HPPA\s0 共有ライブラリに未定義シンボルが含まれるのも 普通のことのようです。 +.IP "\fB\-\-no\-undefined\-version\fR" 4 +.IX Item "--no-undefined-version" +通常は、シンボルが未定義バージョンを持つ場合、リンカはこれを無視します。 +このオプションは、未定義バージョンのシンボルを許さず、 +代りに致命的なエラーを報告します。 .IP "\fB\-\-no\-warn\-mismatch\fR" 4 .IX Item "--no-warn-mismatch" 通常 \fBld\fR は、不適当な入力ファイルをリンクしようとした場合、 @@ -1497,6 +1500,7 @@ Unix のリンカは、このちょっといい加減な慣習を許していますが、 \& return __real_malloc (c); \& } .Ve +.Sp \&\fB\-\-wrap malloc\fR を使用して、このファイルと一緒に他のコードを リンクした場合、すべての \f(CW\*(C`malloc\*(C'\fR 呼び出しは、 関数 \f(CW\*(C`_\|_wrap_malloc\*(C'\fR を代わりに呼び出します。 @@ -1746,6 +1750,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& extern_array[1] --> \& { volatile type *t=extern_array; t[1] } .Ve +.Sp もしくは .Sp .Vb 3 @@ -1753,6 +1758,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& extern_array[1] --> \& { volatile int t=1; extern_array[t] } .Ve +.Sp 構造体 (や、他のほとんどの複数ワードデータタイプ) に対しては、 構造体そのもの (もしくは long long など) を変数とするのが、 唯一の方法です。 @@ -1762,6 +1768,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& extern_struct.field --> \& { volatile struct s *t=&extern_struct; t->field } .Ve +.Sp もしくは .Sp .Vb 3 @@ -1769,6 +1776,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& extern_ll --> \& { volatile long long * local_ll=&extern_ll; *local_ll } .Ve +.Sp この問題を扱う 2 番目の方法は、目障りなシンボルを「自動インポート」するのを 止めて、\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR と印を付けることです。 しかし実際にこれをするには、コンパイル時に #define を使い、 @@ -1789,6 +1797,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& printf("%d\en",arr[1]); \& } .Ve +.Sp 解決策 1: .Sp .Vb 9 @@ -1802,6 +1811,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& printf("%d\en",parr[1]); \& } .Ve +.Sp 解決策 2: .Sp .Vb 14 @@ -1820,6 +1830,7 @@ a) インデックスされる側 (配列のアドレス) を変数とします。 \& printf("%d\en",arr[1]); \& } .Ve +.Sp この問題を回避する 3 番目の方法は、目障りな変数に対するアクセスを、 データを直接使うインタフェースではなく、関数のインタフェースを使うよう ライブラリを書き換えることです |