英語フランス語スペイン語

Ad


OnWorksファビコン

h8300-hitachi-coff-ld - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで h8300-hitachi-coff-ld を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの 8300 つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド hXNUMX-hitachi-coff-ld です。

プログラム:

NAME


ld - GNU リンカーである LD を使用する

SYNOPSIS


ld [オプション] オブジェクトファイル ...

DESCRIPTION


ld 多数のオブジェクトファイルとアーカイブファイルを組み合わせ、それらのデータを再配置し、シンボルを結び付けます
参照。 通常、プログラムをコンパイルする最後のステップは実行することです ld.

ld AT&Tのリンクエディタのスーパーセットで記述されたリンカーコマンド言語ファイルを受け入れます
コマンド言語構文。リンクプロセスを明示的かつ完全に制御します。

このマニュアルページでは、コマンド言語については説明していません。 を参照してください ld 「情報」のエントリ、または
manual ld: GNU リンカ。コマンド言語およびその他の側面に関する完全な詳細が記載されています。
GNUリンカの。

このバージョンの ld 汎用BFDライブラリを使用してオブジェクトファイルを操作します。 この
ことができます ld さまざまな形式のオブジェクトファイルの読み取り、結合、および書き込みを行うには---
たとえば、COFFまたは「a.out」。 さまざまなフォーマットをリンクして、
利用可能な種類のオブジェクトファイル。

その柔軟性は別として、GNUリンカーは他のリンカーよりも提供に役立ちます
診断情報。 多くのリンカーは、に遭遇するとすぐに実行を放棄します
エラー; いつでも可能なとき、 ld 実行を継続し、他のエラーを識別できるようにします
(または、場合によっては、エラーにもかかわらず出力ファイルを取得するため)。

GNUリンカー ld 幅広い状況をカバーし、互換性を保つことを目的としています
他のリンカーで可能な限り。 その結果、あなたはそれを制御するための多くの選択肢があります
行動。

OPTIONS


リンカは多数のコマンドラインオプションをサポートしていますが、実際にはそれらのいくつかは
特定のコンテキストで使用されます。 たとえば、頻繁に使用する ld リンクすることです
サポートされている標準のUnixシステム上の標準のUnixオブジェクトファイル。 そのようなシステムでは、
ファイル「hello.o」をリンクします。

します/lib/crt0.o hello.o -lc

これは ld と呼ばれるファイルを生成するには 出力 ファイルをリンクした結果として
「/lib/crt0.o」と「hello.o」およびライブラリ「libc.a」。これは標準から提供されます。
ディレクトリを検索します。 (の説明を参照してください -l 以下のオプション。)

コマンドラインオプションの一部 ld コマンドラインの任意の場所で指定できます。
ただし、次のようなファイルを参照するオプション -l or -T、でファイルを読み取らせます
オブジェクトファイルに関連して、コマンドラインにオプションが表示されるポイント
他のファイルオプション。 異なる引数でファイル以外のオプションを繰り返すと、
それ以上の影響はありません、または以前の発生をオーバーライドします(コマンドのさらに左側にあるもの)
そのオプションの行)。 複数回意味のある指定が可能なオプションは次のとおりです。
以下の説明に記載されています。

オプション以外の引数は、相互にリンクされるオブジェクトファイルまたはアーカイブです。 彼ら
オブジェクトファイルを除いて、コマンドラインオプションの後に続く、先行する、または混在する可能性があります
オプションとその引数の間に引数を置くことはできません。

通常、リンカは少なくともXNUMXつのオブジェクトファイルで呼び出されますが、他のファイルを指定することもできます
を使用したバイナリ入力ファイルの形式 -l, -R、およびスクリプトコマンド言語。 もしも いいえ バイナリ
入力ファイルがまったく指定されている場合、リンカは出力を生成せず、
メッセージ いいえ ファイル.

リンカがオブジェクトファイルの形式を認識できない場合、リンカはそれがオブジェクトファイルであると見なします。
リンカースクリプト。 このように指定されたスクリプトは、に使用されるメインのリンカースクリプトを拡張します。
リンク(デフォルトのリンカースクリプトまたはを使用して指定されたもののいずれか) -T)。 この
この機能により、リンカはオブジェクトまたはオブジェクトのように見えるファイルに対してリンクできます。
アーカイブしますが、実際にはいくつかのシンボル値を定義するか、「INPUT」または「GROUP」を使用して
他のオブジェクトをロードします。 この方法でスクリプトを指定することは、単にメインのスクリプトを拡張するだけであることに注意してください。
リンカースクリプト。 使用 -T デフォルトのリンカー スクリプトを完全に置き換えるオプション。

名前がXNUMX文字のオプションの場合、オプション引数は次のいずれかに従う必要があります。
空白を挿入しないオプション文字、または個別の引数として指定する
それらを必要とするオプションの直後。

名前が複数の文字であるオプションの場合、XNUMXつのダッシュまたはXNUMXつのダッシュを前に付けることができます。
オプション名; 例えば、 -トレースシンボル & --トレース記号 同等です。 注---あります
この規則のXNUMXつの例外です。 小文字の「o」で始まる複数文字のオプション
XNUMX つのダッシュのみ前に付けることができます。 これは、 -o オプション。 そう
例えば -オーマジック 出力ファイル名をに設定します マジック 一方 --オーマジック NMAGICを設定します
出力のフラグ。

複数文字のオプションへの引数は、オプション名から次のいずれかで区切る必要があります。
等号、またはオプションの直後に個別の引数として指定する
それらが必要です。 例えば、 --トレース記号 foo & --trace-symbol = foo 同等です。
複数文字のオプションの名前の一意の略語が受け入れられます。

注---リンカがコンパイラドライバを介して間接的に呼び出されている場合(例: gccの
すべてのリンカコマンドラインオプションの前に、 -Wl、 (または適切なものは何でも
特定のコンパイラドライバの場合)このように:

gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup

これは重要です。そうしないと、コンパイラドライバプログラムがサイレントにドロップする可能性があるためです。
リンカー オプションの設定により、不正なリンクが発生します。

以下は、GNUリンカによって受け入れられる汎用コマンドラインスイッチの表です。

-aキーワード
このオプションは、HP / UXの互換性のためにサポートされています。 NS キーワード 引数は次のいずれかである必要があります
文字列 アーカイブ, sharedまたは デフォルト. -アーカイブ 機能的には同等です
-Bスタティック、および他のXNUMXつのキーワードは機能的に同等です -バダイナミック。 この
オプションは何度でも使用できます。

-A建築
-アーキテクチャ=建築
の現在のリリースでは ld、このオプションは、インテル960ファミリーの
アーキテクチャ。 その中で ld 構成、 建築 引数は、
960ファミリの特定のアーキテクチャ、いくつかのセーフガードを有効にし、
アーカイブライブラリの検索パス。

の将来のリリース ld 他のアーキテクチャでも同様の機能をサポートする場合があります
家族。

-b 入力形式
--format =入力形式
ld 複数の種類のオブジェクトファイルをサポートするように構成できます。 もしあなたの ld is
このように構成すると、 -b 入力のバイナリ形式を指定するオプション
コマンドラインでこのオプションに従うオブジェクトファイル。 ときでさえ ld 構成されています
代替オブジェクト形式をサポートするために、通常、これを指定する必要はありません。 ld
デフォルトの入力フォーマットとして、それぞれで最も一般的なフォーマットを期待するように構成する必要があります
機械。 入力形式 はテキスト文字列であり、サポートされている特定の形式の名前です。
BFDライブラリ。 (利用可能なバイナリ形式をリストすることができます オブジェクトダンプ -i.)

異常なバイナリでファイルをリンクしている場合は、このオプションを使用することをお勧めします
フォーマット。 使用することもできます -b フォーマットを明示的に切り替える(オブジェクトファイルをリンクする場合)
さまざまな形式の)、含めることによって -b 入力形式 オブジェクトファイルの各グループの前
特定の形式で。

デフォルトの形式は、環境変数「GNUTARGET」から取得されます。

コマンド「TARGET」を使用して、スクリプトから入力形式を定義することもできます。

-c MRIコマンドファイル
--mri-script =MRIコマンドファイル
MRIによって生成されたリンカーとの互換性のために、 ld で書かれたスクリプトファイルを受け入れます
MRI互換スクリプトファイルで説明されている代替の制限されたコマンド言語
GNUldドキュメントのセクション。 オプションでMRIスクリプトファイルを導入する -c; 使用する
  -T 汎用で記述されたリンカースクリプトを実行するオプション ld スクリプト記述
言語。 もしも MRI コマンドファイル 存在しない、 ld 指定されたディレクトリでそれを探します
いずれかで -L オプション。

-d
-dc
-dp これらのXNUMXつのオプションは同等です。 互換性のために複数のフォームがサポートされています
他のリンカーと。 再配置可能な出力であっても、共通のシンボルにスペースを割り当てます
ファイルが指定されています( -r)。 スクリプトコマンド「FORCE_COMMON_ALLOCATION」には、
同じ効果。

-e エントリ
--entry =エントリ
  エントリ プログラムの実行を開始するための明示的なシンボルとしてではなく、
デフォルトのエントリポイント。 名前の付いた記号がない場合 エントリ、リンカーはしようとします
パーズ エントリ 番号として、それをエントリアドレスとして使用します(番号は
10進数で解釈されます。 リーディングを使用できます 0x 基数16、またはリーディング 0 ベース用
8)。

--exclude-libs リブ,リブ、...
シンボルを自動的に作成しないアーカイブライブラリのリストを指定します
エクスポートされました。 ライブラリ名は、コンマまたはコロンで区切ることができます。 指定する
「--exclude-libsALL」は、すべてのアーカイブライブラリのシンボルを自動エクスポートから除外します。
このオプションは、リンカーのi386PEターゲットポートとELFでのみ使用できます。
ターゲットポート。 i386 PEの場合、.defファイルに明示的にリストされているシンボルは引き続き
このオプションに関係なく、エクスポートされます。 ELFターゲットポートの場合、これによって影響を受けるシンボル
オプションは非表示として扱われます。

-E
--エクスポート-動的
動的にリンクされた実行可能ファイルを作成する場合、すべてのシンボルを動的シンボルに追加します。
テーブル。 ダイナミックシンボルテーブルは、ダイナミックから見えるシンボルのセットです。
実行時のオブジェクト。

このオプションを使用しない場合、ダイナミック シンボル テーブルには通常、
リンクで言及されている動的オブジェクトによって参照されるシンボル。

「dlopen」を使用して、シンボルを参照する必要がある動的オブジェクトをロードする場合
他の動的オブジェクトではなく、プログラムによって定義されている場合は、おそらく
プログラム自体をリンクするときにこのオプションを使用する必要があります。

バージョン スクリプトを使用して、どのシンボルを追加するかを制御することもできます。
出力形式がサポートしている場合は、動的シンボルテーブル。 の説明を参照してください
-バージョンスクリプト @ref{VERSION}で。

-EB ビッグエンディアンオブジェクトをリンクします。 これは、デフォルトの出力形式に影響します。

-THE リトルエンディアンオブジェクトをリンクします。 これは、デフォルトの出力形式に影響します。

-f
- 補助
ELF共有オブジェクトを作成するときは、内部DT_AUXILIARYフィールドを
指定された名前。 これは、ダイナミックリンカに共有のシンボルテーブルを通知します
オブジェクトは、共有オブジェクトのシンボルテーブルの補助フィルターとして使用する必要があります
.

後でこのフィルターオブジェクトに対してプログラムをリンクする場合は、
プログラムでは、ダイナミックリンカはDT_AUXILIARYフィールドを参照します。 ダイナミックリンカーの場合
フィルタオブジェクトからのシンボルを解決します。最初に、
共有オブジェクトの定義 。 ある場合は、代わりに使用されます
フィルタオブジェクトの定義。 共有オブジェクト 存在する必要はありません。 したがって、
共有オブジェクト 特定の代替実装を提供するために使用される場合があります
おそらくデバッグまたはマシン固有のパフォーマンスのための関数。

このオプションは複数回指定できます。 DT_AUXILIARYエントリが作成されます
コマンドラインに表示される順序で。

-F
- フィルター
ELF共有オブジェクトを作成するときは、内部DT_FILTERフィールドを指定された値に設定します
名前。 これは、ダイナミックリンカに共有オブジェクトのシンボルテーブルが
作成中は、共有オブジェクトのシンボルテーブルのフィルターとして使用する必要があります
.

後でこのフィルターオブジェクトに対してプログラムをリンクする場合は、
プログラムでは、ダイナミックリンカはDT_FILTERフィールドを参照します。 ダイナミックリンカーは
通常どおり、フィルターオブジェクトのシンボルテーブルに従ってシンボルを解決しますが、
共有オブジェクトで見つかった定義に実際にリンクします 。 したがって、
フィルタオブジェクトを使用して、オブジェクトによって提供されるシンボルのサブセットを選択できます
.

一部の古いリンカーは、 -F のコンパイルツールチェーン全体のオプション
入力オブジェクトファイルと出力オブジェクトファイルの両方にオブ​​ジェクトファイル形式を指定します。 GNUリンカー
この目的のために他のメカニズムを使用します: -b, - フォーマット, --oformat オプション、
リンカスクリプトの「TARGET」コマンド、および「GNUTARGET」環境変数。 GNUは
リンカは無視します -F ELF共有オブジェクトを作成しない場合のオプション。

-フィニ
ELF実行可能ファイルまたは共有オブジェクトを作成する場合、実行可能ファイルまたは共有オブジェクトのときにNAMEを呼び出します。
DT_FINIを関数のアドレスに設定することにより、共有オブジェクトがアンロードされます。 に
デフォルトでは、リンカは呼び出す関数として「_fini」を使用します。

-g 無視されます。 他のツールとの互換性のために提供されています。

-G
--gpsize =
GPレジスタを使用して最適化するオブジェクトの最大サイズを次のように設定します。 サイズ。 この
これは、パッティングをサポートする MIPS ECOFF などのオブジェクト ファイル形式に対してのみ意味があります。
大きなオブジェクトと小さなオブジェクトを異なるセクションに分割します。 他のオブジェクトでは無視されます
ファイル形式。

-h
-soname =
ELF共有オブジェクトを作成するときは、内部DT_SONAMEフィールドを指定された値に設定します
名前。 実行可能ファイルがDT_SONAMEフィールドを持つ共有オブジェクトにリンクされている場合、
次に、実行可能ファイルが実行されると、ダイナミックリンカは共有をロードしようとします
に指定されたファイル名を使用するのではなく、DT_SONAMEフィールドで指定されたオブジェクト
リンカー。

-i インクリメンタルリンクを実行します(オプションと同じ) -r).

-初期化
ELF実行可能ファイルまたは共有オブジェクトを作成する場合、実行可能ファイルまたは共有オブジェクトのときにNAMEを呼び出します。
DT_INITを関数のアドレスに設定することにより、共有オブジェクトがロードされます。 に
デフォルトでは、リンカは呼び出す関数として「_init」を使用します。

-lアーカイブ
--library =アーカイブ
アーカイブファイルを追加 アーカイブ リンクするファイルのリストに。 このオプションは任意に使用できます
何度か。 ld パスリストで「lib」の出現を検索しますarchive.a" for
あらゆる アーカイブ 指定。

共有ライブラリをサポートするシステムでは、 ld でライブラリを検索することもできます
「.a」以外の拡張子。 具体的には、ELF および SunOS システムでは、 ld を検索します
拡張子が「.so」のライブラリのディレクトリを検索してから、拡張子が「.so」のものを検索します。
「.a」の拡張子。 慣例により、「.so」拡張子は共有ライブラリを示します。

リンカは、アーカイブが指定されている場所で、アーカイブをXNUMX回だけ検索します。
コマンドライン。 アーカイブが、あるオブジェクトで定義されていないシンボルを定義している場合
コマンドラインでアーカイブの前に表示されたリンカには、
アーカイブからの適切なファイル。 ただし、オブジェクト内の未定義のシンボル
後でコマンドラインに表示されても、リンカはアーカイブを検索しません。
再び。

ジョブの設定方法については、 -( リンカにアーカイブを複数回検索させる方法のオプション。

コマンドラインで同じアーカイブを複数回リストすることができます。

このタイプのアーカイブ検索は、Unixリンカーの標準です。 しかし、あなたが
ld AIXでは、AIXリンカの動作とは異なることに注意してください。

-L検索ディレクトリ
--library-path =検索ディレクトリ
パスを追加 検索ディレクトリ パスのリストに ld アーカイブライブラリを検索し、
ld 制御スクリプト。 このオプションは何度でも使用できます。 ディレクトリは
コマンドラインで指定された順序で検索されます。 ディレクトリ
コマンドラインで指定されたものは、デフォルトのディレクトリの前に検索されます。 全て -L
オプションはすべてに適用されます -l オプションが表示される順序に関係なく、オプション。

If 検索ディレクトリ 「=」で始まり、「=」は シスルート 接頭辞
リンカの構成時に指定されるパス。

検索されたパスのデフォルトセット(で指定されていない) -L)どちらに依存します
エミュレーションモード ld を使用しており、場合によっては、その構成方法についても説明します。

パスは、「SEARCH_DIR」コマンドを使用してリンクスクリプトで指定することもできます。
このように指定されたディレクトリは、リンカスクリプトが検索されるポイントで検索されます
コマンドラインにが表示されます。

-memulation
エミュレートする emulation リンカ。 使用可能なエミュレーションを一覧表示できます。
-詳細 or -V オプション。

Status -m オプションが使用されていない場合、エミュレーションは「LDEMULATION」から取得されます
環境変数(定義されている場合)。

それ以外の場合、デフォルトのエミュレーションはリンカーの構成方法によって異なります。

-M
--print-map
リンクマップを標準出力に印刷します。 リンクマップは、に関する情報を提供します
以下を含むリンク:

* オブジェクト ファイルとシンボルがメモリにマップされる場所。

* 共通シンボルの割り当て方法。

* リンクにはすべてのアーカイブ メンバーが含まれており、そのシンボルについての言及も含まれています。
アーカイブメンバーが持ち込まれました。

-n
--nmagic
セクションのページ配置をオフにし、可能であれば出力を「NMAGIC」としてマークします。

-N
--オーマジック
テキストセクションとデータセクションを読み取りと書き込みができるように設定します。 また、ページを揃えないでください
データセグメント、および共有ライブラリに対するリンクを無効にします。 出力形式の場合
Unixスタイルのマジックナンバーをサポートし、出力を「OMAGIC」としてマークします。 注:ただし、
書き込み可能なテキストセクションはPE-COFFターゲットで許可されていますが、
Microsoftが発行したフォーマット仕様。

--ノーマジック
このオプションは、 -N オプション。 テキストセクションをに設定します
読み取り専用であり、データセグメントを強制的にページ揃えにします。 注-このオプションは
共有ライブラリに対するリンクを有効にしないでください。 使用する -バダイナミック このため。

-o 出力
--output =出力
  出力 によって作成されたプログラムの名前として ld; このオプションがない場合
指定、名前 アウト デフォルトで使用されます。 スクリプトコマンド「OUTPUT」も可能です
出力ファイル名を指定します。

-O レベル
If レベル ゼロより大きい数値です ld 出力を最適化します。 これはかもしれません
かなり時間がかかるため、おそらくファイナルでのみ有効にする必要があります
バイナリ。

-q
--emit-relocs
再配置セクションとコンテンツを完全にリンクされた実行可能ファイルに残します。 リンクを投稿
分析および最適化ツールは、正しく実行するためにこの情報を必要とする場合があります
実行可能ファイルの変更。 これにより、実行可能ファイルが大きくなります。

このオプションは現在、ELFプラットフォームでのみサポートされています。

-r
-再配置可能
再配置可能な出力を生成します---つまり、次のように機能できる出力ファイルを生成します
への入力 ld。 これはよく呼ばれます 部分的な 連結。 副作用として、環境で
標準のUnixマジックナンバーをサポートするこのオプションは、出力ファイルの
「OMAGIC」へのマジックナンバー。 このオプションが指定されていない場合、絶対ファイルは
生産。 C ++プログラムをリンクする場合、このオプション 意志 への参照を解決する
コンストラクター; そのためには、 -あなたは.

入力ファイルの形式が出力ファイルと同じでない場合、部分的なリンク
その入力ファイルに再配置が含まれていない場合にのみサポートされます。 違う
出力形式にはさらに制限があります。 たとえば、いくつかの「a.out」ベースの形式
他の形式の入力ファイルとの部分的なリンクはまったくサポートしていません。

このオプションはと同じことをします -i.

-R ファイル名
--just-symbols =ファイル名
からシンボル名とそのアドレスを読み取る ファイル名、ただし、再配置したり、含めたりしないでください
出力でそれ。 これにより、出力ファイルがシンボリックに絶対参照できるようになります
他のプログラムで定義されているメモリの場所。 このオプションは、
一度。

他のELFリンカーとの互換性のために、 -R オプションの後にディレクトリが続きます
ファイル名ではなく、名前として扱われます -rpath オプションを選択します。

-s
--strip-all
出力ファイルからすべてのシンボル情報を省略します。

-S
--strip-debug
出力ファイルからデバッガシンボル情報(すべてのシンボルではない)を省略します。

-t
- 痕跡
入力ファイルの名前を次のように出力します ld それらを処理します。

-T スクリプトファイル
--script =スクリプトファイル
  スクリプトファイル リンカースクリプトとして。 このスクリプトは ldのデフォルトのリンカースクリプト
(それに追加するのではなく)、そう コマンドファイル に必要なすべてを指定する必要があります
出力ファイルを記述します。 もしも スクリプトファイル 現在のディレクトリに存在しません、
「ld」は、前の任意のディレクトリで指定されたディレクトリでそれを探します -L オプション。 多数
-T オプションが蓄積されます。

-u シンボル
--undefined =シンボル
シンボル 未定義のシンボルとして出力ファイルに入力されます。 これを行うと、
たとえば、標準ライブラリからの追加モジュールのリンクをトリガーします。 -u 多分
さまざまなオプション引数を繰り返して、追加の未定義の記号を入力します。 この
オプションは、「EXTERN」リンカスクリプトコマンドと同等です。

-あなたは C ++プログラム以外の場合、このオプションは次のようになります。 -r:生成します
再配置可能な出力---つまり、への入力として機能できる出力ファイル ld。 時
C ++プログラムのリンク、 -あなたは ありません コンストラクターへの参照を解決します。 -r。 します
使用するために動作しません -あなたは それ自体がリンクされていたファイル -あなたは; 一度
コンストラクタテーブルが作成されているため、追加できません。 使用する -あなたは 最後だけ
部分的なリンク、および -r 他の人のために。

-ユニーク[=セクション]
一致する入力セクションごとに個別の出力セクションを作成します セクション、または
オプションのワイルドカード セクション すべての孤立した入力セクションについて、引数がありません。 NS
孤立セクションは、リンカースクリプトで特に言及されていないセクションです。 あなたはこれを使うことができます
コマンドラインで複数回オプションを選択します。 入力の通常のマージを防ぎます
同じ名前のセクション。リンカースクリプトの出力セクションの割り当てをオーバーライドします。

-v
- バージョン
-V のバージョン番号を表示する ldを選択します。 -V オプションには、サポートされているエミュレーションも一覧表示されます。

-x
-破棄-すべて
すべてのローカルシンボルを削除します。

-X
--discard-locals
すべての一時ローカル シンボルを削除します。 ほとんどのターゲットでは、これはすべてローカル シンボルです。
名前はで始まります L.

-y シンボル
--trace-symbol =シンボル
リンクされた各ファイルの名前を出力します シンボル が表示されます。 このオプションを指定できます
何度でも。 多くのシステムでは、アンダースコアを前に付ける必要があります。

このオプションは、リンクに未定義のシンボルがあるがわからない場合に便利です。
参照元。

-Y path
Add path デフォルトのライブラリ検索パスに移動します。 このオプションはSolarisに存在します
互換性。

-z キーワード
認識されるキーワードは次のとおりです。

コムレロック
複数の再配置セクションを組み合わせて並べ替え、動的なシンボルルックアップを作成します
キャッシュが可能です。

定義
オブジェクトファイル内の未定義のシンボルを禁止します。 共有の未定義のシンボル
ライブラリは引き続き許可されます。

初期化
このオプションは、共有オブジェクトを構築する場合にのみ意味があります。 オブジェクトをマークします
その実行時の初期化は、の実行時の初期化の前に発生します。
同時にプロセスに持ち込まれた他のオブジェクト。 同様に
オブジェクトのランタイムファイナライズは、のランタイムファイナライズ後に発生します
その他のオブジェクト。

介入する
シンボルテーブルが介在するオブジェクトを、以外のすべてのシンボルの前にマークします。
プライマリ実行可能ファイル。

ロードフィルター
フィルタが実行時にすぐに処理されるオブジェクトをマークします。

muldef
複数の定義を許可します。

ノコンブレロク
複数の再配置セクションの結合を無効にします。

nocopyreloc
コピー reloc の生成を無効にします。

ノードデフォルトライブラリ
このオブジェクトの依存関係の検索で無視されるオブジェクトをマークします
デフォルトのライブラリ検索パス。

ノードレット
オブジェクトを実行時にアンロードしてはならないことを示します。

ノドロペン
オブジェクトを「dlopen」で使用できないようにマークします。

ノーダンプ
オブジェクトを「dldump」でダンプできないことを示します。

実行可能ファイルまたは共有ライブラリを生成するときは、それをマークして動的に通知します
プログラムの起動時または共有時にすべてのシンボルを解決するリンカー
ライブラリは、関数呼び出しの解決を延期する代わりに、dlopenを使用するようにリンクされています
関数が最初に呼び出された時点まで。

起源
オブジェクトに$ ORIGINが含まれている可能性があることを示します。

Solarisとの互換性のため、他のキーワードは無視されます。

-( アーカイブ -)
--開始グループ アーカイブ --エンドグループ
  アーカイブ アーカイブファイルのリストである必要があります。 それらは明示的なファイルのいずれかである可能性があります
名前、または -l オプション。

指定されたアーカイブは、新しい未定義の参照がなくなるまで繰り返し検索されます
作成した。 通常、アーカイブは指定された順序でXNUMX回だけ検索されます。
コマンドラインで。 未定義を解決するためにそのアーカイブ内のシンボルが必要な場合
後でコマンドラインに表示されるアーカイブ内のオブジェクトによって参照されるシンボル、
リンカはその参照を解決できません。 アーカイブをグループ化することにより、
考えられるすべての参照が解決されるまで、それらはすべて繰り返し検索されます。

このオプションを使用すると、パフォーマンスが大幅に低下します。 次の場合にのみ使用することをお勧めします
XNUMXつ以上のアーカイブ間には避けられない循環参照があります。

--accept-unknown-input-arch
--no-accept-unknown-input-arch
アーキテクチャを認識できない入力ファイルを受け入れるようにリンカに指示します。 NS
ユーザーは自分が何をしているのかを知っており、意図的にリンクしたいと考えていると想定しています。
これらの未知の入力ファイルで。 これは、以前のリンカーのデフォルトの動作でした
リリース2.14。 リリース2.14以降のデフォルトの動作は、そのような入力を拒否することです。
ファイルなど --accept-unknown-input-arch 古いものを復元するオプションが追加されました
動作。

- 必要に応じて
-必要に応じて
このオプションは、コマンドで言及されているダイナミックライブラリのELFDT_NEEDEDタグに影響します。
後の行 - 必要に応じて オプション。 通常、リンカは DT_NEEDED タグを追加します。
ライブラリかどうかに関係なく、コマンドラインに記載されている各ダイナミックライブラリ
実際には必要です。 - 必要に応じて DT_NEEDED タグが次の場合にのみ発行されます。
未定義の通常のオブジェクトからのシンボル参照を満たすライブラリ
ライブラリがリンクされた時点で。 -必要に応じて デフォルトを復元します
動作。

-追加-必要
--追加不要
このオプションは、ELF DT_NEEDED タグからの動的ライブラリの処理に影響します。
コマンドラインの後に記述される動的ライブラリ --追加不要 オプションを選択します。
通常、リンカは DT_NEEDED から各ダイナミック ライブラリに DT_NEEDED タグを追加します。
タグ。 --追加不要 そのため、これらのライブラリに対して DT_NEEDED タグが発行されなくなります。
DT_NEEDED タグから。 -追加-必要 デフォルトの動作を復元します。

-主張する キーワード
このオプションは、SunOSとの互換性のために無視されます。

-バダイナミック
-dy
-call_shared
ダイナミックライブラリに対するリンク。 これは、共有されているプラ​​ットフォームでのみ意味があります
ライブラリがサポートされています。 このオプションは通常、このようなプラットフォームのデフォルトです。 NS
このオプションのさまざまなバリエーションは、さまざまなシステムとの互換性のためのものです。 してもいいです
コマンドラインでこのオプションを複数回使用します。ライブラリの検索に影響します。
-l それに続くオプション。

-Bグループ
動的セクションの「DT_FLAGS_1」エントリに「DF_1_GROUP」フラグを設定します。 この
ランタイムリンカが​​このオブジェクトのルックアップを処理し、その依存関係が
グループ内でのみ実行されます。 --unresolved-symbols = report-all 暗示されます。 この
オプションは、共有ライブラリをサポートするELFプラットフォームでのみ意味があります。

-Bスタティック
-dn
-非共有
-静的
共有ライブラリに対してリンクしないでください。 これは、次のようなプラットフォームでのみ意味があります
共有ライブラリがサポートされています。 このオプションのさまざまなバリエーションは、
さまざまなシステムとの互換性。 このオプションは、
コマンドライン:ライブラリの検索に影響します -l それに続くオプション。 この
オプションはまた意味します --unresolved-symbols = report-all.

-シンボリック
共有ライブラリを作成するときは、グローバルシンボルへの参照を定義にバインドします
共有ライブラリ内(ある場合)。 通常、リンクされたプログラムが可能です
共有ライブラリに対して、共有ライブラリ内の定義をオーバーライドします。 この
オプションは、共有ライブラリをサポートするELFプラットフォームでのみ意味があります。

-チェックセクション
--チェックセクションなし
リンカーに尋ねる 割り当てられたセクションアドレスをチェックして、
重複があります。 通常、リンカーはこのチェックを実行します。
オーバーラップすると、適切なエラー メッセージが生成されます。 リンカは知っていて、
オーバーレイのセクションを考慮します。 デフォルトの動作を復元できます
コマンドラインスイッチを使用して -チェックセクション.

--cref
相互参照テーブルを出力します。 リンカーマップファイルが生成されている場合、クロス
参照テーブルがマップファイルに出力されます。 それ以外の場合は、標準に印刷されます
出力。

表の形式は意図的に単純化されているため、次の方法で簡単に処理できます。
必要に応じてスクリプト。 記号は名前でソートされて印刷されます。 シンボルごとに、
ファイル名のリストが表示されます。 シンボルが定義されている場合、リストされる最初のファイルは
定義の場所。 残りのファイルには、シンボルへの参照が含まれています。

--no-define-common
このオプションは、共通シンボルへのアドレスの割り当てを禁止します。 スクリプト
コマンド「INHIBIT_COMMON_ALLOCATION」も同じ効果があります。

  --no-define-common オプションを使用すると、アドレスを割り当てる決定を切り離すことができます
出力ファイルタイプの選択からの一般的な記号。 それ以外の場合は再配置不可
出力タイプは、共通シンボルへのアドレスの割り当てを強制します。 使用する --no-define-common
共有ライブラリから参照される共通シンボルを割り当てることができます
メインプログラムでのみアドレス指定します。 これにより、
共有ライブラリであり、間違った解決をめぐる混乱を防ぎます
専用の検索パスを持つ動的モジュールが多数ある場合に複製
ランタイムシンボル解決。

--defsym シンボル=表現
次の式で指定された絶対アドレスを含むグローバルシンボルを出力ファイルに作成します。
表現。 このオプションは、複数を定義するために必要な回数だけ使用できます
コマンドラインの記号。 限定された形式の算術がサポートされています
表現 このコンテキストでは、XNUMX進定数または名前を指定できます。
既存の記号、または「+」と「-」を使用してXNUMX進定数を加算または減算する、または
シンボル。 より複雑な式が必要な場合は、linkerコマンドの使用を検討してください
スクリプトからの言語。 注: 間に空白があってはなりません シンボル
等号 (``='')、 と 表現.

--demangle [= ]
-デマングルなし
これらのオプションは、エラーメッセージやその他のシンボル名をデマングルするかどうかを制御します
出力。 リンカーがデマングルするように指示されると、リンカーはシンボル名を
読みやすい方法:オブジェクトファイルで使用されている場合は、先頭のアンダースコアを削除します
フォーマットし、C ++のマングルされたシンボル名をユーザーが読み取れる名前に変換します。 違う
コンパイラにはさまざまなマングリングスタイルがあります。 オプションのデマングルスタイル引数は、
コンパイラに適切なデマングリングスタイルを選択するために使用されます。 リンカーは
環境変数を除いて、デフォルトでデマングル COLLECT_NO_DEMANGLE が設定されています。 これらは
オプションを使用して、デフォルトをオーバーライドできます。

-ダイナミックリンカー file
ダイナミックリンカの名前を設定します。 これは、生成するときにのみ意味があります
動的にリンクされたELF実行可能ファイル。 通常、デフォルトのダイナミックリンカは正しいです。
何をしているのかわからない限り、これを使用しないでください。

-致命的-警告
すべての警告をエラーとして扱います。

--force-exe-サフィックス
出力ファイルに.exeサフィックスが付いていることを確認してください。

正常にビルドされた完全にリンクされた出力ファイルに「.exe」または「.dll」がない場合
接尾辞、このオプションは、リンカに出力ファイルを同じ名前のXNUMXつにコピーするように強制します
「.exe」サフィックスが付いています。 このオプションは、変更されていないUnixmakefileを
Microsoft Windowsホスト、一部のバージョンのWindowsは、イメージを実行しない限りイメージを実行しないため
「.exe」サフィックスで終わります。

--no-gc-sections
--gc-セクション
未使用の入力セクションのガベージコレクションを有効にします。 するターゲットでは無視されます
このオプションはサポートされていません。 このオプションは互換性がありません -r. デフォルトの動作
(このガベージ コレクションを実行しない) を指定することで復元できます。
--no-gc-sections コマンドラインで。

- 助けて
コマンドラインオプションの概要を標準出力に出力して終了します。

--ターゲットヘルプ
すべてのターゲット固有のオプションの要約を標準出力に出力して終了します。

-地図 マップファイル
ファイルへのリンクマップを印刷します マップファイル。 の説明を参照してください -M 上記のオプション。

--保持メモリなし
ld 通常、のシンボルテーブルをキャッシュすることにより、メモリ使用量よりも速度を最適化します。
メモリ内の入力ファイル。 このオプションは ld 代わりに、メモリ使用量を最適化する
必要に応じてシンボルテーブルを読み直します。 これは、次の場合に必要になる場合があります ld 不足している
大きな実行可能ファイルをリンクしている間のメモリスペース。

-いいえ-未定義
-z 定義
通常のオブジェクトファイルからの未解決のシンボル参照を報告します。 これは、
リンカは、非シンボリック共有ライブラリを作成しています。 スイッチ
-[no-] allow-shlib-未定義 未解決を報告するための動作を制御します
リンクされている共有ライブラリで見つかった参照。

--allow-複数定義
-z muldef
通常、シンボルが複数回定義されている場合、リンカーは致命的を報告します
エラー。 これらのオプションでは複数の定義が可能であり、最初の定義が使用されます。

--allow-shlib-未定義
--no-allow-shlib-未定義
共有ライブラリ内の未定義のシンボルを許可 (デフォルト) または禁止します。 このスイッチ
に似ています -いいえ-未定義 ただし、次の場合の動作を決定します。
未定義のシンボルは、通常のオブジェクト ファイルではなく共有ライブラリ内にあります。 します
通常のオブジェクト ファイル内の未定義シンボルの処理方法には影響しません。

その理由 --allow-shlib-未定義 デフォルトでは、共有ライブラリが
リンク時に指定されるものは、ロード時に使用できるものと同じではない可能性があります
したがって、シンボルは実際にはロード時に解決できる可能性があります。 さらに、いくつかあります
システム (BeOS など) では、共有ライブラリ内の未定義のシンボルが正常に存在します。 (カーネル
ロード時にパッチを適用して、現在の機能に最も適した機能を選択します。
建築。 これは、たとえば適切な memset を動的に選択するために使用されます。
関数)。 どうやら、HPPA 共有ライブラリが未定義であることも通常のことのようです。
シンボル。

--no-未定義のバージョン
通常、シンボルのバージョンが未定義の場合、リンカはそれを無視します。 この
オプションは、バージョンが定義されていないシンボルを許可せず、致命的なエラーが発行されます
を代わりにお使いください。

--デフォルト-symver
バージョン管理されていないエクスポートされたシンボルのデフォルトのシンボルバージョン(soname)を作成して使用します。

--default-imported-symver
バージョン管理されていないインポートされたシンボルのデフォルトのシンボルバージョン(soname)を作成して使用します。

-- 警告の不一致
通常は ld 次の入力ファイルをリンクしようとするとエラーが発生します
何らかの理由で不一致、おそらくそれらは異なるためにコンパイルされているため
プロセッサまたはさまざまなエンディエンス用。 このオプションは ld それがすべきだと
そのような起こりうるエラーを黙って許可します。 このオプションは、注意して使用する必要があります。
リンカエラーが発生することを保証する特別なアクションを実行した場合
不適切。

--アーカイブなし
の効果をオフにします -- 全体アーカイブ 後続のアーカイブファイルのオプション。

--noinhibit-exec
実行可能出力ファイルは、引き続き使用できる場合は常に保持してください。 通常、リンカー
リンクプロセス中にエラーが発生した場合、出力ファイルは生成されません。 それ
エラーが発生した場合は、出力ファイルを書き込まずに終了します。

-nostdlib
コマンドラインで明示的に指定されたライブラリディレクトリのみを検索します。 図書館
リンカスクリプトで指定されたディレクトリ(で指定されたリンカスクリプトを含む)
コマンドライン)は無視されます。

--oformat 出力フォーマット
ld 複数の種類のオブジェクトファイルをサポートするように構成できます。 もしあなたの ld is
このように構成すると、 --oformat のバイナリ形式を指定するオプション
出力オブジェクトファイル。 ときでさえ ld 代替オブジェクトをサポートするように構成されている
フォーマットの場合、通常、これを指定する必要はありません。 ld を生成するように構成する必要があります
デフォルトの出力フォーマットとして、各マシンで最も一般的なフォーマット。 出力フォーマット  
テキスト文字列、BFDライブラリでサポートされている特定の形式の名前。 (あなたはできる
利用可能なバイナリ形式を一覧表示します オブジェクトダンプ -i。)スクリプトコマンド
「OUTPUT_FORMAT」は出力フォーマットを指定することもできますが、このオプションはそれをオーバーライドします。

-パイ
--pic-実行可能ファイル
位置に依存しない実行可能ファイルを作成します。 これは現在、ELFでのみサポートされています
プラットフォーム。 位置に依存しない実行可能ファイルは、その点で共有ライブラリに似ています
それらは、ダイナミックリンカによってOSが選択した仮想アドレスに再配置されます
それら(呼び出しごとに異なる可能性があります)。 通常の動的にリンクされた実行可能ファイルのように
それらは実行可能であり、実行可能ファイルで定義されたシンボルはによってオーバーライドできません
共有ライブラリ。

-qmagic
Linuxとの互換性のため、このオプションは無視されます。

-Qy このオプションは、SVR4の互換性のために無視されます。

- リラックス
マシンに依存する効果を持つオプション。 このオプションは、ごく一部でのみサポートされています
ターゲット。

一部のプラットフォームでは、 - リラックス オプションは、次のようなグローバル最適化を実行します。
アドレスの緩和など、リンカがプログラム内のアドレスを解決する場合に可能
モードを変更し、出力オブジェクト ファイル内で新しい命令を合成します。

一部のプラットフォームでは、これらのリンク時間のグローバル最適化により、
結果の実行可能ファイルは不可能です。 これは松下の場合であることが知られています
MN10200およびMN10300ファミリのプロセッサ。

これがサポートされていないプラットフォームでは、 - リラックス 受け入れられますが、無視されます。

--シンボルファイルを保持 ファイル名
保持する ファイルにリストされている記号 ファイル名、他のすべてを破棄します。 ファイル名
は単純なフラットファイルで、XNUMX行にXNUMXつのシンボル名が付いています。 このオプションは特に
大きなグローバルシンボルテーブルがある環境(VxWorksなど)で役立ちます
実行時のメモリを節約するために、徐々に蓄積されます。

--シンボルファイルを保持 ありません 未定義のシンボル、またはに必要なシンボルを破棄します
移転。

指定のみ可能 --シンボルファイルを保持 コマンドラインでXNUMX回。 オーバーライドします -s
& -S.

-rpath DIR
ランタイムライブラリの検索パスにディレクトリを追加します。 これは、ELFをリンクするときに使用されます
共有オブジェクトで実行可能。 全て -rpath 引数は連結されてに渡されます
実行時に共有オブジェクトを見つけるためにそれらを使用する実行時リンカー。 NS -rpath
このオプションは、共有オブジェクトに必要な共有オブジェクトを見つけるときにも使用されます
リンクに明示的に含まれています。 の説明を参照してください -rpath-リンク オプション。 場合
-rpath ELF実行可能ファイル、環境のコンテンツをリンクする場合は使用されません
変数「LD_RUN_PATH」が定義されている場合は使用されます。

  -rpath オプションはSunOSでも使用できます。 デフォルトでは、SunOSでは、リンカーは
すべての中からランタイム検索パッチを形成します。 -L 与えられたオプション。 もし -rpath オプション
が使用される場合、ランタイム検索パスは、 -rpath オプションは、
無視して -L オプション。 これは、多くの機能を追加するgccを使用する場合に役立ちます。 -L
NFS マウントされたファイルシステムにある可能性のあるオプション。

他のELFリンカーとの互換性のために、 -R オプションの後にディレクトリが続きます
ファイル名ではなく、名前として扱われます -rpath オプションを選択します。

-rpath-リンク DIR
ELFまたはSunOSを使用する場合、XNUMXつの共有ライブラリに別のライブラリが必要になる場合があります。 これは、
「ld-shared」リンクには、入力ファイルのXNUMXつとして共有ライブラリが含まれています。

非共有、非再配置可能を実行しているときにリンカがそのような依存関係に遭遇したとき
リンク、それは自動的に必要な共有ライブラリを見つけてそれを含めようとします
リンクに明示的に含まれていない場合。 そのような場合、 -rpath-リンク オプション
検索するディレクトリの最初のセットを指定します。 NS -rpath-リンク オプションで指定できます
で区切られた名前のリストを指定することによる一連のディレクトリ名
コロン、または複数回出現することによって。

このオプションは、次のような検索パスを上書きするため、注意して使用する必要があります。
共有ライブラリにハードコンパイルされています。 そのような場合に使用することが可能です
意図せずに、ランタイムリンカーが行う検索パスとは異なる検索パス。

リンカーは、次の検索パスを使用して、必要な共有ライブラリを見つけます。

1.によって指定されたディレクトリ -rpath-リンク オプション。

2.によって指定されたディレクトリ -rpath オプション。 の違い -rpath &
-rpath-リンク によって指定されたディレクトリです -rpath オプションはに含まれています
実行可能で実行時に使用されますが、 -rpath-リンク オプションは有効です
リンク時。 これはネイティブ リンカー専用です。

3. ELF システム上で、 -rpath 「rpath-link」オプションが使用されていない場合は、
環境変数「LD_RUN_PATH」の内容。 ネイティブリンカー用です
のみ。

4. SunOSでは、 -rpath オプションが使用されなかった場合、指定されたディレクトリを検索します
-L オプション。

5. ネイティブ リンカーの場合は、環境変数「LD_LIBRARY_PATH」の内容。

6.ネイティブELFリンカーの場合、共有の「DT_RUNPATH」または「DT_RPATH」内のディレクトリ
ライブラリは、必要な共有ライブラリを検索します。 「DT_RPATH」エントリは次のとおりです。
「DT_RUNPATH」エントリが存在する場合は無視されます。

7.デフォルトのディレクトリ、通常は / lib & / usr / lib.

8. ELFシステムのネイティブリンカーの場合、ファイルの場合 /etc/ld.so.conf 存在する、リスト
そのファイルで見つかったディレクトリの数。

必要な共有ライブラリが見つからない場合、リンカは警告を発行し、
リンクを続行します。

-共有
-共有可能
共有ライブラリを作成します。 これは現在、ELF、XCOFF、SunOSでのみサポートされています
プラットフォーム。 SunOSでは、リンカは次の場合に共有ライブラリを自動的に作成します。 -e
オプションは使用されず、リンクに未定義のシンボルがあります。

--sort-common
このオプションは ld 一般的なシンボルを
適切な出力セクション。 最初にすべての XNUMX バイト記号が来て、次にすべての XNUMX バイト記号が来ます。
バイト、次に XNUMX バイトすべて、そしてその他すべて。 隙間を防ぐためです
配置の制約によりシンボル間がずれてしまいます。

--ソートセクション
このオプションは、リンカーのすべてのワイルドカードセクションパターンに「SORT_BY_NAME」を適用します
スクリプト。

--ソートセクション アラインメント
このオプションは、「SORT_BY_ALIGNMENT」を内のすべてのワイルドカードセクションパターンに適用します。
リンカースクリプト。

--ファイルごとに分割 [サイズ]
そして --再配置による分割 ただし、入力ファイルごとに新しい出力セクションを作成します。
サイズ が達成された。 サイズ 指定しない場合、デフォルトのサイズは1です。

--再配置による分割 [カウント]
出力ファイルに追加のセクションを作成して、の単一の出力セクションがないようにします。
ファイルには以上のものが含まれています カウント 移転。 これは、巨大な生成時に役立ちます
COFFオブジェクトを使用して特定のリアルタイムカーネルにダウンロードするための再配置可能なファイル
ファイル形式; COFFは65535回でXNUMXを超える再配置を表すことができないため
セクション。 これは、機能しないオブジェクトファイル形式では機能しないことに注意してください
任意のセクションをサポートします。 リンカは個々の入力セクションを分割しません
再配布の場合、単一の入力セクションに カウント 移転
XNUMXつの出力セクションには、その数の再配置が含まれます。 カウント デフォルトの値は
32768.

-統計
実行など、リンカーの操作に関する統計を計算して表示します
時間とメモリの使用量。

--sysroot =ディレクトリにジョブを開始します。
  ディレクトリにジョブを開始します。 sysrootの場所として、configure-timeのデフォルトをオーバーライドします。
このオプションは、を使用して構成されたリンカーでのみサポートされます。 --with-sysroot.

-従来の形式
一部のターゲットでは、 ld いくつかの出力とはいくつかの点で異なります
既存のリンカー。 このスイッチは要求します ld 代わりに従来の形式を使用します。

たとえば、SunOSでは、 ld シンボル文字列テーブル内の重複するエントリを結合します。 この
完全なデバッグ情報を含む出力ファイルのサイズを30以上削減できます
パーセント。 残念ながら、SunOSの「dbx」プログラムは結果のプログラムを読み取ることができません
(「gdb」には問題はありません)。 NS -従来の形式 スイッチは教えます ld 結合しない
重複するエントリ。

--セクション開始 セクション名=ORG
出力ファイル内の次の絶対アドレスでセクションを見つけます。 ORG。 You may useあなたは使用することができます
コマンド内の複数のセクションを見つけるために必要な回数このオプション
ライン。 ORG 単一のXNUMX進整数である必要があります。 他のリンカーとの互換性のために、
先頭を省略できます 0x 通常、XNUMX進値に関連付けられます。 注: そこ
間に空白があってはなりません セクション名、等号 (``='')、 と ORG.

-TBS ORG
-Tdata ORG
-Ttext ORG
--section-start と同じですが、「.bss」、「.data」、または「.text」を指定します。 セクション名.

--unresolved-symbols =方法
未解決のシンボルの処理方法を決定します。 の可能な値はXNUMXつあります
方法:

全無視
未解決のシンボルは報告しないでください。

レポート-すべて
未解決のシンボルをすべて報告します。 これがデフォルトです。

オブジェクトファイルを無視する
共有ライブラリに含まれている未解決のシンボルを報告しますが、無視します
それらが通常のオブジェクトファイルからのものである場合。

共有ライブラリを無視する
通常のオブジェクトファイルからの未解決のシンボルを報告しますが、次の場合は無視します
それらは共有ライブラリから来ています。 これは、ダイナミックを作成するときに役立ちます
バイナリであり、参照する必要があるすべての共有ライブラリが知られています
リンカのコマンドラインに含まれています。

共有ライブラリ自体の動作は、
-[no-] allow-shlib-未定義 オプションを選択します。

通常、リンカは、報告された未解決のシンボルごとにエラーメッセージを生成します。
しかし、オプション -警告-未解決-記号 これを警告に変更できます。

--dll-冗長
-詳細
のバージョン番号を表示する ld サポートされているリンカーエミュレーションを一覧表示します。 画面
どの入力ファイルを開くことができるか、できないか。 によって使用されているリンカースクリプトを表示します
リンカー。

--version-script =バージョン-スクリプトファイル
リンカにバージョンスクリプトの名前を指定します。 これは通常、次の場合に使用されます
バージョンに関する追加情報を指定するための共有ライブラリの作成
作成されるライブラリの階層。 このオプションは ELF でのみ意味があります
共有ライブラリをサポートするプラットフォーム。

-警告-共通
共通のシンボルが別の共通のシンボルまたはシンボルと組み合わされたときに警告します
意味。 Unix リンカーでは、このややずさんな手法が許可されていますが、一部のリンカーでは
他のオペレーティングシステムはそうではありません。 このオプションを使用すると、潜在的な問題を見つけることができます
グローバルシンボルの組み合わせから。 残念ながら、一部の C ライブラリではこの手法が使用されているため、
プログラムだけでなく、ライブラリのシンボルについても警告が表示される場合があります。

ここではCの例で示されている、XNUMX種類のグローバルシンボルがあります。

int型 i = 1;
出力ファイルの初期化されたデータセクションに入る定義。

外部 int型 i;
スペースを割り当てない未定義の参照。 どちらかが必要です
どこかの変数の定義または共通の記号。

int型 i;
一般的なシンボル。 変数に(XNUMXつ以上の)共通シンボルしかない場合、
出力ファイルの初期化されていないデータ領域に入ります。 リンカーはマージします
同じ変数の複数の共通シンボルをXNUMXつのシンボルに。 彼らがいる場合
さまざまなサイズの中で、最大のサイズを選択します。 リンカーは共通のシンボルになります
同じ変数の定義がある場合は、宣言に入れます。

  -警告-共通 オプションはXNUMX種類の警告を生成できます。 各警告は
一対の線:最初は出会ったばかりのシンボルを表し、XNUMX番目は出会ったばかりのシンボルを表します
同じ名前で遭遇した前のシンボルを説明します。 XNUMXつの一方または両方
シンボルは一般的なシンボルになります。

1.すでに定義があるので、共通のシンボルを参照に変える
シンボルのために。

(( ):警告: `の共通'
定義によりオーバーライド
(( ):警告:ここで定義

2.共通のシンボルを参照に変えるのは、後の定義が
シンボルに遭遇しました。 これは前のケースと同じですが、
シンボルは異なる順序で検出されます。

(( ):警告: `の定義'
共通のオーバーライド
(( ):警告:一般的なものはここにあります

3.共通シンボルを以前の同じサイズの共通シンボルとマージします。

(( ):警告:複数の共通
`の'
(( ):警告:以前の共通点はここにあります

4.共通シンボルを以前のより大きな共通シンボルとマージします。

(( ):警告: `の共通'
より大きなコモンによってオーバーライドされます
(( ):警告:より大きな共通点はここにあります

5.共通シンボルを以前の小さい共通シンボルとマージします。 これは同じです
前の場合と同じですが、シンボルが別の場所で検出される点が異なります
オーダー。

(( ):警告: `の共通'
小さいコモンをオーバーライドする
(( ):警告:小さいコモンはここにあります

-警告-コンストラクター
グローバルコンストラクターが使用されている場合は警告します。 これは、いくつかのオブジェクトファイルにのみ役立ちます
フォーマット。 COFFやELFなどの形式の場合、リンカはグローバルの使用を検出できません
コンストラクター。

--warn-multiple-gp
出力ファイルに複数のグローバルポインタ値が必要な場合に警告します。 これだけです
Alphaなどの特定のプロセッサにとって意味があります。 具体的には、一部のプロセッサ
大きな値の定数を特別なセクションに配置します。 特殊レジスター(グローバル
ポインタ)はこのセクションの中央を指しているため、定数をロードできます
ベースレジスタ相対アドレッシングモードを介して効率的に。 ベースのオフセット以来-
レジスタ相対モードは固定されており、比較的小さい(たとえば、16ビット)ため、
定数プールの最大サイズ。 したがって、大規模なプログラムでは、多くの場合、
可能なすべてに対処できるようにするために、複数のグローバルポインタ値を使用する
定数。 このオプションを使用すると、このケースが発生するたびに警告が発行されます。

-警告-XNUMX回
参照するモジュールごとにXNUMX回ではなく、未定義のシンボルごとにXNUMX回だけ警告します。
ボーマンは

--warn-section-align
アライメントのために出力セクションのアドレスが変更された場合に警告します。 通常、
配置は入力セクションによって設定されます。 住所は次の場合にのみ変更されます
明示的に指定されていません。 つまり、「SECTIONS」コマンドで開始が指定されていない場合
セクションのアドレス。

--warn-shared-textrel
リンカがDT_TEXTRELを共有オブジェクトに追加した場合に警告します。

-警告-未解決-記号
リンカが未解決のシンボルを報告する場合(オプションを参照)
-未解決-シンボル)通常はエラーが発生します。 このオプションはそれを作ります
代わりに警告を生成します。

-エラー-未解決-シンボル
これにより、リンカがレポートしているときにエラーを生成するというリンカのデフォルトの動作が復元されます。
未解決のシンボル。

-- 全体アーカイブ
コマンドラインの後に記載されているアーカイブごとに -- 全体アーカイブ オプション、
検索するのではなく、リンク内のアーカイブ内のすべてのオブジェクトファイルを含めます
必要なオブジェクトファイルのアーカイブ。 これは通常、アーカイブファイルを作成するために使用されます
共有ライブラリに入れ、すべてのオブジェクトを結果の共有ライブラリに含めるように強制します
図書館。 このオプションは複数回使用できます。

gccからこのオプションを使用する場合のXNUMXつの注意:最初に、gccはこのオプションについて知りません。
だからあなたは使用する必要があります -Wl、-アーカイブ全体。 第二に、使用することを忘れないでください
-Wl、-no-whole-archive gccは独自のリストを追加するため、アーカイブのリストの後に
リンクへのアーカイブの数であり、このフラグがそれらにも影響を与えたくない場合があります。

- 包む シンボル
ラッパー関数を使用する シンボル。 未定義の参照 シンボル 解決されます
ラップします_シンボル"。 「__real_」への未定義の参照シンボル" に解決されます
シンボル.

これは、システム関数のラッパーを提供するために使用できます。 ラッパー関数
「__wrap_」と呼ばれるべきですシンボル"。 システム関数を呼び出したい場合は、
「__real_シンボル".

簡単な例を次に示します。

無効*
__wrap_malloc(size_t c)
{
printf( "mallocが%zu \ nで呼び出されました"、c);
return __real_malloc(c);
}

を使用して他のコードをこのファイルにリンクする場合 - 包む malloc関数、その後、「malloc」へのすべての呼び出し
代わりに、関数「__wrap_malloc」を呼び出します。 の「__real_malloc」の呼び出し
「__wrap_malloc」は、実際の「malloc」関数を呼び出します。

「__real_malloc」関数も提供して、
- 包む オプションは成功します。 これを行う場合、あなたはの定義を置くべきではありません
「__wrap_malloc」と同じファイル内の「__real_malloc」; そうした場合、アセンブラは
リンカが呼び出しを「malloc」にラップする前に、呼び出しを解決します。

--enable-new-dtags
--新しい dtags を無効にする
このリンカは、ELFで新しい動的タグを作成できます。 しかし、古いELFシステムはそうではないかもしれません
それらを理解します。 指定した場合 --enable-new-dtags、動的タグが作成されます
必要に応じて。 指定する場合 --新しい dtags を無効にする、新しい動的タグは作成されません。
デフォルトでは、新しい動的タグは作成されません。 これらのオプションは単なる
ELF システムで利用可能です。

--hash-size =
リンカのハッシュテーブルのデフォルトサイズをに近い素数に設定します .
この値を増やすと、リンカーがその実行にかかる時間を短縮できます。
リンカのメモリ要件を増やすことを犠牲にして、タスク。 同様に
この値を減らすと、速度を犠牲にしてメモリ要件を減らすことができます。

--メモリのオーバーヘッドを減らす
このオプションは、リンクを犠牲にして、実行時のメモリ要件を削減します
スピード。 これは、リンク マップ ファイルの古い O(n^2) アルゴリズムを選択するために導入されました。
生成のために約40%多くのメモリを使用する新しいO(n)アルゴリズムではなく
シンボルストレージ。

スイッチのもう 1021 つの影響は、デフォルトのハッシュ テーブル サイズを XNUMX に設定することです。
リンカの実行時間を長くするという犠牲を払って、再びメモリを節約します。 これは行われません
ただし、 -ハッシュサイズ スイッチが使用されています。

  --メモリのオーバーヘッドを減らす スイッチは、他のトレードオフを有効にするためにも使用できます。
リンカの将来のバージョン。

i386PEリンカーは -共有 オプション。これにより、出力は
通常の実行可能ファイルの代わりにダイナミックリンクライブラリ(DLL)。 名前を付ける必要があります
このオプションを使用すると、「*。dll」が出力されます。 さらに、リンカーは完全にサポートします
標準の「* .def」ファイル。オブジェクトのようにリンカのコマンドラインで指定できます。
ファイル(実際には、シンボルをエクスポートするアーカイブの前に配置して、シンボルが確実に取得されるようにする必要があります。
通常のオブジェクトファイルと同じようにリンクされます)。

すべてのターゲットに共通のオプションに加えて、i386PEリンカーは追加のサポートを提供します
i386PEターゲットに固有のコマンドラインオプション。 値を取るオプション
スペースまたは等号のいずれかで値から区切ることができます。

--add-stdcall-alias
指定されている場合、stdcallサフィックス(@nn)はそのまま、また
接尾辞が削除されました。 [このオプションは、リンカーのi386PEターゲットポートに固有です]

--ベースファイル file
  file すべてのベースアドレスを保存するファイルの名前として
DLLを生成するために必要な再配置 dllツール。 [これはi386PE固有です
オプション]

--dll
通常の実行可能ファイルの代わりにDLLを作成します。 使用することもできます -共有 またはを指定します
指定された「.def」ファイルの「LIBRARY」。 [このオプションは、対象となるi386PEに固有のものです
リンカーのポート]

--enable-stdcall-fixup
--disable-stdcall-fixup
リンクが解決できないシンボルを見つけた場合、「ファジー」を実行しようとします。
の形式のみが異なる別の定義済みシンボルを探すことにより、「リンク」
シンボル名(cdeclとstdcall)であり、一致にリンクすることでそのシンボルを解決します。
たとえば、未定義のシンボル「_foo」が関数「_foo @ 12」にリンクされている可能性があります。
未定義のシンボル「_bar @ 16」が関数「_bar」にリンクされている可能性があります。 いつ
リンカはこれを行い、通常はリンクに失敗するはずだったので、警告を出力します。
ただし、サードパーティのdllから生成されたインポートライブラリには、この機能が必要な場合があります
使えるように。 指定した場合 --enable-stdcall-fixup、この機能は完全に有効になっています
警告は印刷されません。 指定した場合 --disable-stdcall-fixup、この機能は
無効になり、そのような不一致はエラーと見なされます。 [このオプションは
リンカのi386PEターゲットポート]

--すべてのシンボルをエクスポート
指定した場合、DLLの構築に使用されるオブジェクト内のすべてのグローバルシンボルは、によってエクスポートされます。
DLL。 それ以外の場合はエクスポートされない場合は、これがデフォルトであることに注意してください
シンボル。 シンボルがDEFファイルを介して明示的にエクスポートされるか、暗黙的にエクスポートされる場合
関数属性を介して、デフォルトでは、このオプションがない限り、他には何もエクスポートされません。
与えられます。 記号「DllMain @ 12」、「DllEntryPoint @ 0」、
「DllMainCRTStartup @ 12」、および「impure_ptr」は自動的にエクスポートされません。 また、
他のDLLからインポートされたシンボルは再エクスポートされず、指定するシンボルも再エクスポートされません。
「_head_」で始まる、または「_head_」で終わるDLLの内部レイアウト
「_iname」。 さらに、「libgcc」、「libstd ++」、「libmingw32」、または「libmingwXNUMX」からの記号はありません。
「crtX.o」がエクスポートされます。 名前が「__rtti_」または「__builtin_」で始まる記号
C ++ DLLを支援するために、エクスポートされません。 最後に、の広範なリストがあります
cygwin-エクスポートされないプライベートシンボル(明らかに、これはビルド時に適用されます
cygwinターゲットのDLL)。 これらのcygwin-excludesは次のとおりです: "_ cygwin_dll_entry @ 12"、
"_cygwin_crt0_common @ 8"、 "_ cygwin_noncygwin_dll_entry @ 12"、 "_ fmode"、 "_ impure_ptr"、
"cygwin_attach_dll"、 "cygwin_premain0"、 "cygwin_premain1"、 "cygwin_premain2"、
「cygwin_premain3」、および「environ」。 [このオプションは、対象となるi386PEに固有のものです
リンカーのポート]

-除外-記号 シンボル,シンボル、...
自動的にエクスポートされないシンボルのリストを指定します。 象徴
名前はコンマまたはコロンで区切ることができます。 [このオプションはi386PEに固有です
リンカーのターゲットポート]

--ファイル配置
ファイルの配置を指定します。 ファイル内のセクションは常にファイルオフセットで始まります
これはこの数の倍数です。 これはデフォルトで512になります。[このオプションは特定のものです
リンカのi386PEターゲットポートへ]

- ヒープ リザーブ
- ヒープ リザーブ,コミット
ヒープとして使用するために予約 (およびオプションでコミット) するメモリの量を指定します。
このプログラム。 デフォルトは 1Mb 予約、4K コミットです。 [このオプションは
リンカのi386PEターゲットポート]

--画像ベース
  プログラムまたはdllのベースアドレスとして。 これは最低のメモリです
プログラムまたはdllがロードされるときに使用される場所。 する必要性を減らすために
dllを再配置してパフォーマンスを向上させるには、それぞれに一意のベースアドレスを設定する必要があります
他のdllと重複しないでください。 実行可能ファイルのデフォルトは0x400000であり、
dllの場合は0x10000000。 [このオプションは、のi386PEターゲットポートに固有です。
リンカ]

--キルアット
指定されている場合、stdcallサフィックス(@nn)シンボルが削除される前にシンボルから削除されます
エクスポートされました。 [このオプションは、リンカーのi386PEターゲットポートに固有です]

--ラージアドレス対応
指定されている場合、COFF ヘッダーの「特性」フィールドの適切なビットは次のとおりです。
この実行可能ファイルが 2 より大きい仮想アドレスをサポートすることを示すように設定します
ギガバイト。 これは、/3GB または /USERVA= と組み合わせて使用​​する必要があります。 メガバイト
BOOT.INI の「[オペレーティング システム]」セクションで切り替えます。 そうでなければ、このビット
効果はありません。 [このオプションは、リンカーの PE ターゲット ポートに固有です]

--主要なイメージ バージョン
「イメージバージョン」のメジャー番号を設定します。 デフォルトは 1 です。[このオプションは
リンカのi386PEターゲットポートに固有]

--メジャー OS バージョン
「os バージョン」のメジャー番号を設定します。 デフォルトは 4 です。[このオプションは特定のものです。
リンカのi386PEターゲットポートへ]

--メジャー サブシステム バージョン
「サブシステムのバージョン」のメジャー番号を設定します。 デフォルトは 4 です。 [このオプションは
リンカのi386PEターゲットポートに固有]

-マイナーイメージバージョン
「イメージバージョン」のマイナー番号を設定します。 デフォルトは 0 です。 [このオプションは
リンカのi386PEターゲットポートに固有]

-マイナー-os-バージョン
「os バージョン」のマイナー番号を設定します。 デフォルトは 0 です。 [このオプションは特定のものです。
リンカのi386PEターゲットポートへ]

-マイナーサブシステムバージョン
「サブシステムのバージョン」のマイナー番号を設定します。 デフォルトは 0 です。 [このオプションは
リンカのi386PEターゲットポートに固有]

-- 出力定義 file
リンカがファイルを作成します file これには、対応するDEFファイルが含まれます
リンカが生成しているDLL。 このDEFファイル(「* .def」と呼ばれる必要があります)は、
「dlltool」を使用してインポートライブラリを作成するために使用するか、への参照として使用できます。
自動的または暗黙的にエクスポートされたシンボル。 [このオプションはi386PEに固有です
リンカーのターゲットポート]

--out-implib file
リンカがファイルを作成します file これには、に対応するインポートライブラリが含まれます
リンカが生成しているDLL。 このインポートライブラリ(「* .dll.a」または
「* .a」は、生成されたDLLに対してクライアントをリンクするために使用できます。 この振る舞いはそれを作ります
別の「dlltool」インポートライブラリの作成手順をスキップすることができます。 [このオプションは
リンカのi386PEターゲットポートに固有]

--enable-auto-image-base
を使用して指定されていない限り、DLL のイメージ ベースを自動的に選択します。
「--image-base」引数。 DLL 名から生成されたハッシュを使用して一意のファイルを作成することにより、
各 DLL のイメージ ベース、プログラムを遅延させる可能性があるメモリ内の衝突と再配置
処刑は避けられる。 [このオプションは、i386 PE ターゲット ポートに固有です。
リンカ]

--自動イメージベースを無効にする
一意の画像ベースを自動的に生成しないでください。 ユーザー指定がない場合
次に、イメージベース( "--image-base")は、プラットフォームのデフォルトを使用します。 [このオプションは特定のものです
リンカのi386PEターゲットポートへ]

--dll-検索プレフィックス 文字列
インポートライブラリなしでdllに動的にリンクする場合は、
「」 「lib」よりも「.dll」 .dll」。この動作により、
さまざまな「サブプラットフォーム」用に構築されたDLLを簡単に区別:ネイティブ、cygwin、
uwin、pwなど。たとえば、cygwin DLLは通常、「-dll-search-prefix = cyg」を使用します。
[このオプションは、リンカーのi386PEターゲットポートに固有です]

--自動インポートを有効にする
DLLからのDATAインポートのために、「_ symbol」から「__imp__symbol」への高度なリンクを実行します。
インポートライブラリを構築するときに必要なサンクシンボルを作成します
それらのDATAエクスポート。 注:「auto-import」拡張子を使用すると、テキストが表示されます
書き込み可能にする画像ファイルのセクション。 これはPE-COFFに準拠していません
Microsoftが発行したフォーマット仕様。

'auto-import'を使用すると、通常は '正常に機能します'-しかし、これが表示される場合があります
メッセージ:

「変数」は自動インポートできません。ldのドキュメントをお読みください
詳細については、「-enable-auto-import」を参照してください。」

このメッセージは、一部の(サブ)式が最終的にによって指定されたアドレスにアクセスしたときに発生します。
32つの定数の合計(WinXNUMXインポートテーブルではXNUMXつしか使用できません)。 これが発生するインスタンス
DLLからインポートされた構造体変数のメンバーフィールドへのアクセスが含まれる場合があります。
また、DLLからインポートされた配列変数への定数インデックスを使用します。 どれでも
マルチワード変数(配列、構造体、long longなど)がこのエラー状態を引き起こす可能性があります。
ただし、問題のあるエクスポートされた変数の正確なデータ型に関係なく、ldは
常にそれを検出し、警告を発して終了します。

データ型に関係なく、この問題に対処する方法はいくつかあります。
エクスポートされた変数:

XNUMXつの方法は、-enable-runtime-pseudo-relocスイッチを使用することです。 これはのタスクを残します
ランタイム環境用にクライアントコードの参照を調整するため、このメソッドは機能します
ランタイム環境がこの機能をサポートしている場合のみ。

XNUMX番目の解決策は、「定数」のXNUMXつを変数にすることです。つまり、
コンパイル時に不明で最適化できません。 アレイの場合、XNUMXつの可能性があります。
a)インデックス作成者(配列のアドレス)を変数にする、またはb)「定数」インデックスを作成する
変数。 したがって:

externタイプextern_array [];
extern_array [1]->
{揮発性タイプ* t = extern_array; t [1]}

or

externタイプextern_array [];
extern_array [1]->
{volatile int t = 1; extern_array [t]}

構造体(および他のほとんどのマルチワードデータ型)の場合、唯一のオプションは
構造体自体(またはlong long、または...)変数:

extern 構造体 extern_struct;
extern_struct.field->
{volatile struct s * t =&extern_struct; t->フィールド}

or

externlonglongextern_ll;
extern_ll->
{volatile long long * local_ll =&extern_ll; * local_ll}

この問題に対処するXNUMX番目の方法は、「自動インポート」を中止することです。
問題のあるシンボルを「__declspec(dllimport)」でマークします。 ただし、実際には、
DLLを構築しているかどうかを示すために、コンパイル時の#definesを使用する必要があります。
DLLにリンクするクライアントコードを構築する、または単に静的に構築/リンクする
図書館。 '直接を解決するさまざまな方法の間で選択を行う際に
一定のオフセットを伴うアドレスの問題については、一般的な実際の使用法を検討する必要があります。

オリジナル:

--foo.h
extern int arr [];
--foo.c
#include "foo.h"
void main(int argc、char ** argv){
printf( "%d \ n"、arr [1]);
}

ソリューション1:

--foo.h
extern int arr [];
--foo.c
#include "foo.h"
void main(int argc、char ** argv){
/ *この回避策はwin32とcygwin用です。 「最適化」しないでください* /
volatile int * parr = arr;
printf( "%d \ n"、parr [1]);
}

ソリューション2:

--foo.h
/ *注:自動エクスポートが想定されています(__declspec(dllexport)なし)* /
#if (定義済み(_WIN32) ⎪⎪定義済み(__CYGWIN__)) && \
!(定義済み(FOO_BUILD_DLL) ⎪⎪ 定義済み(FOO_STATIC))
#define FOO_IMPORT __declspec(dllimport)
#その他
#FOO_IMPORT を定義
#endif
extern FOO_IMPORT int arr [];
--foo.c
#include "foo.h"
void main(int argc、char ** argv){
printf( "%d \ n"、arr [1]);
}

この問題を回避するXNUMX番目の方法は、ライブラリを再コーディングして機能を使用することです。
問題のある変数のデータインターフェイスではなくインターフェイス(例: set_foo() &
get_foo() アクセサ関数)。 [このオプションはi386PEターゲットポートに固有です
リンカーの]

--自動インポートを無効にする
DATAの「_symbol」から「__imp__symbol」への高度なリンクを試みないでください
DLLからインポートします。 [このオプションは、のi386PEターゲットポートに固有です。
リンカ]

--enable-runtime-pseudo-relocを有効にする
コードに--enable-auto-importセクションで説明されている式が含まれている場合、つまり、
ゼロ以外のオフセットでDLLからDATAをインポートすると、このスイッチは次のベクトルを作成します。
ランタイム環境で調整に使用できる「ランタイム疑似再配置」
クライアントコード内のそのようなデータへの参照。 [このオプションはi386PEに固有です
リンカーのターゲットポート]

--disable-runtime-pseudo-reloc
DLL からのゼロ以外のオフセット DATA インポートでは、疑似再配置を作成しないでください。 これは
デフォルト。 [このオプションは、リンカの i386 PE ターゲット ポートに固有です]

--enable-extra-pe-debug
自動インポートシンボルサンクに関連する追加のデバッグ情報を表示します。 [このオプションは
リンカのi386PEターゲットポートに固有]

--セクションの配置
セクションの配置を設定します。 メモリ内のセクションは、常に次のアドレスで始まります
この数の倍数です。 デフォルトは0x1000です。 [このオプションは、
リンカのi386PEターゲットポート]

- スタック リザーブ
- スタック リザーブ,コミット
スタックとして使用するために予約する (およびオプションでコミットする) メモリの量を指定します
このプログラムのために。 デフォルトは 2Mb 予約、4K コミットです。 【こちらのオプションは
リンカのi386PEターゲットポートに固有]

-サブシステム which
-サブシステム which:主要な
-サブシステム which:主要な.マイナー
プログラムを実行するサブシステムを指定します。 の法的価値
which 「native」、「windows」、「console」、「posix」、および「xbox」です。 オプションで設定できます
サブシステムバージョンも。 数値も受け入れられます which。 [このオプション
リンカのi386PEターゲットポートに固有です]

68HC11および68HC12リンカーは、メモリバンクを制御するための特定のオプションをサポートします
マッピングとトランポリンコード生成の切り替え。

-トランポリンなし
このオプションは、トランポリンの生成を無効にします。 デフォルトでは、トランポリンは
「jsr」命令を使用して呼び出されるfar関数ごとに生成されます(これは
far関数へのポインタが取られたときに発生します)。

--銀行窓口
このオプションは、リンカーにメモリ領域の名前を示します。 MEMORY
メモリバンクウィンドウを説明する仕様。 そのような地域の定義は
次に、リンカがメモリウィンドウ内のページングとアドレスを計算するために使用します。

ENVIRONMENT


の動作を変更できます ld 環境変数「GNUTARGET」を使用して、
「LDEMULATION」および「COLLECT_NO_DEMANGLE」。

「GNUTARGET」は、使用しない場合の入力ファイルオブジェクトの形式を決定します -b (またはその同義語
- フォーマット)。 その値は、入力フォーマットのBFD名のXNUMXつである必要があります。 ない場合
環境内の「GNUTARGET」、 ld ターゲットの自然な形式を使用します。 「GNUTARGET」の場合
が「デフォルト」に設定されている場合、BFDはバイナリを調べて入力形式を検出しようとします
入力ファイル; この方法は成功することがよくありますが、そこにあるため、潜在的なあいまいさがあります
オブジェクトファイル形式を指定するために使用されるマジックナンバーが
個性的。 ただし、各システムでのBFDの構成手順では、
そのシステムの従来の形式が検索リストの最初にあるため、あいまいさが解決されます
慣習に賛成。

「LDEMULATION」は、を使用しない場合のデフォルトのエミュレーションを決定します -m オプション。 ザ·
エミュレーションは、リンカーの動作のさまざまな側面、特にデフォルトのリンカーに影響を与える可能性があります
脚本。 使用可能なエミュレーションを一覧表示できます。 -詳細 or -V オプション。 の場合
-m オプションが使用されておらず、「LDEMULATION」環境変数が定義されていない場合、
デフォルトのエミュレーションは、リンカがどのように構成されたかによって異なります。

通常、リンカはデフォルトでシンボルのデマングリングを行います。 ただし、
「COLLECT_NO_DEMANGLE」が環境に設定されている場合、デフォルトでデマングリングしないようになります
シンボル。 この環境変数は、「gcc」リンカーによって同様の方法で使用されます
ラッパープログラム。 デフォルトは、 -デマングル & -デマングルなし
オプション。

onworks.net サービスを使用してオンラインで h8300-hitachi-coff-ld を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

  • 1
    DivFix + +
    DivFix + +
    DivFix++ はあなたの AVI ビデオ修復と
    プレビュー ソフトウェア。 修理用に設計されています
    ダウンロード中のファイルのプレビュー
    ed2k(emule)、torrent、gnutella、ftp から...
    DivFix++ をダウンロード
  • 2
    JBossコミュニティ
    JBossコミュニティ
    を特徴とするコミュニティ主導のプロジェクト
    最先端の最新イノベーション
    アプリ。 当社の主力プロジェクトである JBoss AS は、
    最先端のオープンソース、
    規格に準拠した...
    JBoss コミュニティをダウンロード
  • 3
    ジャンゴファイラー
    ジャンゴファイラー
    django Filer はファイル管理です
    作るdjangoのアプリケーション
    ファイルと画像を簡単に処理できます。
    django-filer はファイル管理です
    djangのアプリケーション...
    Django ファイラーをダウンロード
  • 4
    xCAT
    xCAT
    エクストリーム クラスター管理ツールキット。
    xCAT はスケーラブルなクラスター管理です
    および提供するプロビジョニング ツール
    ハードウェア制御、検出、OS
    ディスクフル/ディ...
    xCATをダウンロード
  • 5
    ψ
    ψ
    Psi はクロスプラットフォームの強力な XMPP です
    経験豊富なユーザー向けに設計されたクライアント。
    MS で利用可能なビルドがあります
    Windows、GNU/Linux、macOS.. 対象者:
    利用者...
    サイをダウンロード
  • 6
    ブロビーボレー2
    ブロビーボレー2
    有名な作品の正式な続編
    Blobby Volley 1.x アーケード ゲーム..
    対象者:エンドユーザー/デスクトップ。 ユーザー
    インターフェース:OpenGL、SDL。 プログラミング
    言語: C++、Lua。 C...
    ブロビー バレー 2 をダウンロード
  • 詳細»

Linuxコマンド

Ad