3.23 リンカによるライブラリの検索、選択、およびスキャンの実行方法

リンカは、常に ARM ライブラリの前にユーザライブラリを検索します。

--no_scanlib コマンドラインオプションを指定した場合、リンカはデフォルトの ARM ライブラリの検索を行わず、入力ファイルリストに指定されているライブラリのみを使用して参照を解決します。

リンカでは、ライブラリの内部リストを以下の方法で作成します。

  1. 入力ファイルリスト内に明示的に指定されているすべてのライブラリをリストに追加します。

  2. 入力オブジェクト内に指定されている要求を満たすために、ユーザ指定の検索パスを検証し、ARM 標準ライブラリを識別します。

    検索したディレクトリおよびそのサブディレクトリから、最も適切なライブラリのバリアントが選択されます。ARM が提供するライブラリには、そのメンバの属性に基づいて命名されている複数のバリアントがあります。

リンカがオブジェクトファイルをイメージに追加する方法と、ライブラリをイメージに追加する方法には、以下の違いがあります。

  • 入力リスト内の各オブジェクトファイルは、それを参照するものがあるかどうかに関係なく、無条件に出力イメージに追加されます。ただし、少なくとも 1 つのオブジェクトが指定されている必要があります。

  • ライブラリのメンバは、以下の場合にのみ出力にインクルードされます。

    • オブジェクトファイルまたは既にインクルードされているライブラリメンバからそのメンバへの非弱参照がある。

    • リンカが明示的にそのメンバを追加するよう指示されている。

    ライブラリのメンバは、入力ファイルリスト内で明示的に要求されると、そのメンバによって現在の参照が解決されない場合でもロードされます。この場合、明示的に要求されたメンバは、通常のオブジェクトと同様に処理されます。

weak 型シンボルへの未解決の参照がある場合、ライブラリのメンバはロードされません。

関連する概念
3.22 弱参照と定義
3.24 リンカによる ARM 標準ライブラリの検索方法
関連する参考文書
12.78 --keep=section_id
12.118 --remove、--no_remove
12.125 --scanlib、--no_scanlib
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.