Skip to main content

IAR Embedded Workbench for Arm 9.70.x

ビルド済ランタイムライブラリ

このセクションの内容:

ビルド済のランタイムライブラリは、以下のオプションのさまざまな組合せについて設定されています。

  • プロセッサ選択

  • データモデル

  • ライブラリ構成(ノーマルまたはフル)

リンカは、正しいライブラリファイルとライブラリ設定ファイルを自動的にインクルードします。ライブラリ設定を明示的に指定するには、‑‑dlib_configコンパイラオブジェクトを使用します。ただし、フル ライブラリ構成は Libc++ に存在する唯一の構成です。‑‑dlib_config コンパイラオプションは、別の設定を指定するために使用できません。

ヒント

To see which runtime library files that the linker includes, use the linker option ‑‑log libraries, see ‑‑log.

ライブラリファイル名構文

ライブラリの名前は、以下のように構成されます。

arch

CPUアーキテクチャを指定します。

4t = Armv4T

5E = Armv5E

6Mまたは6Mx = Armv6M(6Mxは--no_literal_poolで構築)

7Mまたは7Mx = Armv7M(7Mxは--no_literal_poolで構築)

7Sx = Armv7-AおよびArmv7-R、--no_literal_poolで構築

4as = 汎用 Armv4、境界チェックで構築

7as = 汎用 Armv7、境界チェックで構築

8A = Armv8-A

mode

デフォルトのプロセッサ/実行モードの指定:

a = Armモード

t = Thumbモード

x = 64 ビットモード

endian

バイトオーダーを指定:

l = little-endian

b = big-endian

lib-config

ライブラリ構成を指定:

n = ノーマル

f = フル

rwpi

ライブラリがRWPIをサポートするかどうかを指定:

s = RWPIをサポート。スタティック・ベース・レジスタ (R9)に対するオフセットを使用します。

g = RWPIをサポート。グローバル・オフセット・テーブル(GOT)に対するオフセットを使用します。

存在しない = RWPIをサポートしない

fp

浮動小数点の実行方法を指定:

v = VFP

s = 単精度のVFP のみ

存在しない = ソフトウェア実行

abi

64ビットモードのデータモデルの指定:

44 = ILP32(4 バイト long、4 バイトポインタ)

88 = LP64(8 バイト long、8 バイトポインタ)

表示なし = ライブラリは 32 ビットモードでの使用

debug-interface

セミホスティングのメカニズムを指定:

s = SVC

b = BKPT

i = IAR-breakpoint

pacbti

ライブラリが分岐保護(PACBTI)をサポートするかどうかを指定します。

p = PACBTI に対応

not present = PACBTIに対応していない

ライブラリオブジェクトファイルはディレクトリarm\lib\にあり、ライブラリ設定ファイルはarm\inc\ディレクトリにあります。

ライブラリファイルのグループ

ライブラリは、以下のグループのライブラリ関数で提供されます。

Cライブラリ関数のライブラリファイル

これらは標準Cにより定義された関数で、たとえばprintfscanfなどです。このライブラリには数学関数は含まれません。

ライブラリファイルの名前は、以下のように構成されます。

dl{arch}_{mode}{endian}{lib-config}[rwpi][abi][pacbti].a

これは、特に次のことを表します。

dl{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}{n|f}[s|g][44|88][p].a
C++ライブラリ関数のライブラリファイル

これらはC++により定義される関数で、標準のC++のサポートを使用してコンパイルされます。

Dinkumware C++14 ライブラリ(dlpp) および Libc++ C++17 ライブラリ(dllibcpp)には別のライブラリがあります。

ライブラリファイルの名前は、以下のように構成されます。

dlpp{arch}_{mode}{endian}{fp}_{lib-config}c[rwpi][abi][pacbti].a
dllibcpp{arch}_{mode}{endian}{fp}_fc[rwpi][abi][pacbti].a

具体的には以下のようになります。:

dlpp{4t|5E|6M|6Mx|7M|7Mx|7Sx|4as|7as|8A}_{a|t|x}{l|b}{v|s|}_{n|f}c[s|g][44|88][p].a
dllibcpp{4t|5E|6M|6Mx|7M|7Mx|7Sx|4as|7as|8A}_{a|t|x}{l|b}{v|s|}_fc[s|g][44|88][p].a
C++ランタイムライブラリ関数のライブラリファイル

C++に必要なランタイム関数があり、Libc++ とDLIB C++ ライブラリの両方で使用されます。

ライブラリファイルの名前は、以下のように構成されます。

dlpprt{arch}_{mode}{endian}_{lib-config}c[rwpi][abi][pacbti].a

これは、特に次のことを表します。

dlpprt{4t|5E|6M|6Mx|7M|7Mx|7Sx|4as|7as|8A}_{a|t|x}{l|b}_{n|f}c[s|g][44|88][p].a
数学関数のライブラリファイル

これらは浮動小数点演算用の関数および標準Cで定義されたシグネチャに浮動小数点型を持つ関数です。たとえば、sqrtのような関数です。

ライブラリファイルの名前は、以下のように構成されます。

m{arch}_{mode}{endian}[fp][rwpi][abi][pacbti].a

これは、特に次のことを表します。

m{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}[v|s][g][44|88][p].a
スレッドサポート関数のライブラリファイル

これらはスレッドサポートの関数です。

ライブラリファイルの名前は、以下のように構成されます。

th{arch}_{mode}{endian}{lib-config}[abi][pacbti].a

これは、特に次のことを表します。

th{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}{n|f}[44|88][p].a
タイムゾーンと夏時間のサポート関数のライブラリファイル

タイムゾーンと夏時間機能をサポートする関数です。

ライブラリファイルの名前は、以下のように構成されます。

tz{arch}_{mode}{endian}[rwpi][abi][pacbti].a

これは、特に次のことを表します。

tz{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}[s|g][44|88][p].a
ランタイムサポート関数のライブラリファイル

これらの関数は、システム起動、初期化、非浮動小数点AEABIサポートルーチン、C/C++標準に含まれる一部の関数用です。

ライブラリファイルの名前は、以下のように構成されます。

rt{arch}_{mode}{endian}[rwpi][abi][pacbti].a

これは、特に次のことを表します。

rt{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}[g][44|88][p].a
デバッグサポート関数のライブラリファイル

これらの関数は、セミホストインタフェースのデバッグサポート用です。ライブラリファイルの名前は、以下のように構成されます。

sh{debug-interface}_{endian}[rwpi][pacbti].a

または

sh{arch}_{endian}[rwpi][abi][pacbti].a

これは、特に次のことを表します。

sh{s|b|i}_{l|b}[g][p].a

または

sh{6Mx|7Mx|7Sx|8A}_{l|b}[g][44|88][p].a