• 検索結果がありません。

リンカの起動方法(-z オプション)

ここでは、プログラムをコンパイルしアセンブルした後で、独立したステップとし て、またはコンパイラの一部としてリンカを起動する方法を説明します。

4.1.1 独立したステップとしてリンカを起動する方法

C/C++ プログラムのリンクを独立したステップで実行する場合の一般的な構文を、

次に示します。

cl2000 -v28 -z {-c | -cr} filenames [-options] [-o name.out] -l library [lnk.cmd]

cl2000 -v28 -z リンカを起動するコマンドです。

-c | -cr C/C++ 環境で定義している特別の規則を使用することをリンカに

指示するオプションです。cl2000 -v28 -z を使用する場合は、-c ま

たは -cr を必ず指定しなければなりません。-c オプションを指定す

ると、実行時に変数の自動初期化を行います。-cr オプションを指 定すると、ロード時に変数の自動初期化を行います。

filenames オブジェクト・ファイル、リンカ・コマンド・ファイル、または

アーカイブ・ライブラリの名前を指定します。すべての入力ファ イルのデフォルト拡張子は obj です。これ以外の拡張子を使用す る場合は、明示的に指定しなければなりません。リンカは入力ファ イルがオブジェクトであるか、それともリンカ・コマンドが含ま

れた ASCII ファイルであるかを判別できます。-o オプションを使

用して出力ファイル名を指定した場合を除き、デフォルトの出力 ファイル名は a.out です。

options リンカによるオブジェクト・ファイルの処理方法に影響を及ぼす

オプションです。リンカ・オプションは、コマンド行の -z オプ ションの後にしか指定できませんが、順番は問いません(オプ ションについては、4.2 節「リンカ・オプション」(4-5 ページ)を 参照)。

-o name.out -o オプションは、出力ファイルの名前を指定します。

-l libraryname (小文字の L)C/C++ ランタイムサポート関数、および浮動小数点

算術関数を含んだ適切なアーカイブ・ライブラリまたはまたはリ ンカ・コマンド・ファイルを識別します。C/C++ コードをリンク する場合、ランタイムサポート・ライブラリを使用する必要があ ります。コンパイラに付属するライブラリを使用しても、または

リンカの起動方法(-z オプション)

ライブラリをリンカへの入力として指定した場合、リンカは未定義の参照を解決す るライブラリ・メンバのみをインクルードし、リンクします。たとえば、prog1.obj、 prog2.obj、および prog3.obj の各モジュールから構成されている C/C++ プログラムを 実行可能なファイル名 prog.out とリンクするには次のコマンドを使用します。

cl2000 -v28 -z -c prog1 prog2 prog3 -o prog.out rts2800.lib リンカは、デフォルトの割り当てアルゴリズムを使用してプログラムをメモリに割 り当てます。リンカ・コマンド・ファイルの中で MEMORY と SECTIONS の疑似命 令 を 使 用 す る と、割 り 当 て 処 理 を カ ス タ マ イ ズ で き ま す。詳 細 に つ い て は、

『TMS320C28x アセンブリ言語ツール ユーザーズ・マニュアル』を参照してください。

4.1.2 コンパイル・ステップの一部としてリンカを起動する方法

C/C++ プログラムのリンクをコンパイル・ステップの一部として実行する場合の一 般的な構文を、次に示します。

cl2000 -v28 [-options] filenames -z {-c | -cr} filenames [-options] [-o name.out] -l library [lnk.cmd]

cl2000 -v28 リンカを起動するコマンドです。

options コンパイラによる入力ファイルの処理方法に影響を与えるオプ

ションです。オプションは、表 2-1(2-6 ページ)に示します。

filenames 1 つまたは複数の C/C++ ソース・ファイル、アセンブリ言語ソー

ス・ファイル、直線的なアセンブリ・ファイル、オブジェクト・

ファイルのいずれかを指定します。

-z リンカを起動する方法をコンパイラに指示するオプションです。

-c | -cr C/C++ 環境で定義している特別の規則を使用することをリンカ

に指示するオプションです。cl2000 -v28 -z を使用する場合は、-c

または -cr を必ず指定しなければなりません。-c オプションを指

定すると、実行時に変数の自動初期化を行います。-cr オプショ ンを指定すると、ロード時に変数の自動初期化を行います。

リンカの起動方法(-z オプション)

-z オプションは、コマンド行をコンパイラ・オプション(-z の前にあるオプション)

とリンカ・オプション(-z の後にあるオプション)に分割します。-z オプションは、

コマンド行ですべてのファイル・オプションおよびコンパイラ・オプションを指定 した後に入力する必要があります。

コマンド行で -z の後に指定した引数は、すべてリンカへ渡されます。指定できる引 数は、リンカ・コマンド・ファイル、追加オブジェクト・ファイル、リンカ・オプ ション、またはライブラリのいずれかです。

コマンド行で -z の前に指定した引数は、すべてコンパイラ引数です。指定できる引

数は、C/C++ ソース・ファイル、アセンブリ・ファイル、コンパイラ・オプション

のいずれかです。これらの引数については、2.2 節「C/C++ コンパイラの起動方法」

を参照してください。

たとえば、prog1.c、prog2.c、および prog3.c の各モジュールから構成されている

C/C++ プログラムをコンパイルし、実行可能なファイル名 prog.out とリンクするに

は次のコマンドを使います。

cl2000 -v28 prog1.c prog2.c prog3.c -z -c -o prog.out -l rts2000.lib

4.1.3 リンカを無効にする方法(-cコンパイラ・オプション)

-c コンパイラ・オプションを使用することにより、-z オプションを無効にできます。

-c オプションは、C_OPTION 環境変数の中で -z オプションを指定しているとき、お よびコマンド行でリンクを選択的に無効にする場合に特に便利です。

-c リンカ・オプションは、-c コンパイラ・オプションとは異なる独自の機能を備え ています。デフォルトでは、-z オプションを使用した場合、コンパイラは -c リンカ・

オプションを使用します。このオプションはリンカに対して、C/C++ のリンク規則

-o name.out -o オプションは、出力ファイルの名前を指定します。

-l libraryname (小文字の L)C/C++ ランタイムサポート関数、および浮動小数

点算術関数を含んだ適切なアーカイブ・ライブラリまたはまたは リンカ・コマンド・ファイルを識別します C/C++ コードをリンク する場合、ランタイムサポート・ライブラリを使用する必要があ ります。コンパイラに添付されているライブラリを使用しても、

または独自のランタイムサポート・ライブラリを作成しても構い ません。リンカ・コマンド・ファイルにランタイムサポート・ラ イブラリを指定する場合、このパラメータは不要です。

lnk.cmd リンカのオプション、ファイル名、疑似命令、コマンドを含みま

す。

リンカ・オプション