コンパイル・ドライバ(ccrl)は入力ファイルの拡張子を識別し,コンパイラ,アセンブラ,リンカを起動します。拡張子のアルファベットは大文字/小文字を区別しません。
- | 入力ファイルの拡張子が「.s」「.asm」のいずれかである場合,コンパイル・ドライバはそのファイルをアセンブリ言語ファイルと解釈して,アセンブラを起動します。 |
- | 入力ファイルの拡張子が「.c」である場合,コンパイル・ドライバはそのファイルをC言語ソース・ファイルと解釈して,コンパイラを起動します。 |
- | 入力ファイルの拡張子が「.cpp」「.cc」「.cp」のいずれかである場合,コンパイル・ドライバはそのファイルをC++言語ソース・ファイルと解釈して,コンパイラを起動します。 |
- | 入力ファイルの拡張子が「.obj」である場合,コンパイル・ドライバはそのファイルをオブジェクト・ファイルと解釈して,リンカを起動します。 |
これら以外の拡張子のファイルは,Cソース・ファイルと解釈してコンパイラを起動します。
CソースファイルおよびC++ソース・ファイルは,-langオプションで言語規格を指定できます。
各コマンドは,コマンド・ラインで以下のように入力します。
>ccrl[△option]...△file[△file|△option]...
|
>asrl[△option]...△file[△file|△option]...
|
>rlink[{△file|△option}...]
|
option : オプション名
file : ファイル名
[ ] : [ ]内は省略可能
... : 直前の[ ]内のパターンの繰り返しが可能
{ } : |で区切られた項目を選択
△ : 1個以上の空白
[, ...] : コンマで区切って,直前のパターンを繰り返すことが可能
[: ...] : コロンで区切って,直前のパターンを繰り返すことが可能
string := A : stringをAで置換する
string := A | B | C : stringをA,B,Cのいずれか1つで置換する
コマンドを入力する際の注意事項を以下に示します。
- | ファイル名は,OSで認められるものであれば指定可能です。
相対パス,もしくはドライブ名からはじまる絶対パスで指定します。
また,“-”はオプション指定と判断するため,“-”もファイル名の先頭文字として使用することはできません。
さらに,“(”,“)”はリンク・オプションの一部と判断するため,“(”,“)”をファイル名に使用することはできません。 |
そして以下の文字も使用できません。
|
|
Windows
|
”^|;*?<>\/:
|
Linux
|
"$&'()^|[];<>`\/
|
この他にも,内部処理でサブコマンド・ファイルを使用するため,ファイル名やパス名の使用に注意が必要な文字があります。
「2.4.2 サブコマンド・ファイルの使用方法」も合わせてご確認ください。
- | 指定可能なファイル名の長さは,OSに依存します(Windowsでは、259文字まで)。 |
- | Windowsでは,ファイル名のアルファベットは,大文字/小文字を区別しません。 |
- | 入力として複数のファイルが指定可能です。
異なる種類のファイル(Cソース・ファイルとアセンブリ・ソース・ファイル,またはオブジェクト・ファイルなど)を混在して指定することも可能です。
ただし,拡張子を除いたソース・ファイル名が同じファイルを複数指定することはできません(異なるフォルダにある場合も含みます)。
複数のファイルを指定した場合は,1つのファイルでエラーとなっても,残りのファイルの処理が継続可能であれば,処理を継続します。
なお,生成したオブジェクト・ファイルはリンク後も削除しません。 |
コマンド・ラインでの操作例を以下に示します。
(a) | コンパイル,アセンブル,リンクを1コマンドで行う場合 |
Cソース・ファイルfile1.cをccrlでコンパイルして,アセンブリ・ソース・ファイルfile1.asmを生成します。
次に,アセンブリ・ソース・ファイルfile1.asmとfile2.asmをasrlでアセンブルして,オブジェクト・ファイルfile1.obj,file2.objを生成します。
また,アセンブル・リスト・ファイルをカレント・フォルダに出力します。
最後に,オブジェクト・ファイルfile1.obj,file2.obj,file3.objをrlinkでリンクして,リンク・マップ・ファイルsample.map,およびロード・モジュール・ファイルsample.absを生成します。
>ccrl file1.c file2.asm file3.obj -asmopt=-prn_path -lnkopt=-list -osample.abs -cpu=S2 -dev=dr5f100pj.dvf
|
備考 | ccrlに対して,asrlのみに指定可能なオプションを指定する場合は-asmoptオプション,rlinkのみに指定可能なオプションを指定する場合は-lnkoptオプションを使用します。 |
(b) | コンパイル,アセンブルを1コマンドで行い,リンクは単独で行う場合 |
Cソース・ファイルfile1.cをccrlでコンパイルして,アセンブリ・ソース・ファイルfile1.asmを生成します。
次に,アセンブリ・ソース・ファイルfile1.asmとfile2.asmをasrlでアセンブルして,オブジェクト・ファイルfile1.obj,file2.objを生成します。
また,アセンブル・リスト・ファイルをカレント・フォルダに出力します。
>ccrl -c file1.c file2.asm -asmopt=-prn_path -cpu=S2 -dev=dr5f100pj.dvf
|
備考 | ccrlに対して,asrlのみに指定可能なオプションを指定する場合は-asmoptオプションを使用します。 |
オブジェクト・ファイルfile1.obj,file2.obj,file3.objをrlinkでリンクして,リンク・マップ・ファイルsample.map,およびロード・モジュール・ファイルsample.absを生成します。
>rlink file1.obj file2.obj file3.obj -output=sample.abs -list
|
(c) | コンパイル,アセンブル,リンクともに単独で行う場合 |
Cソース・ファイルfile1.cをccrlでコンパイルして,アセンブリ・ソース・ファイルfile1.asmを生成します。
>ccrl -S file1.c -cpu=S2 -dev=dr5f100pj.dvf
|
アセンブリ・ソース・ファイルfile1.asmとfile2.asmをasrlでアセンブルして,オブジェクト・ファイルfile1.obj,file2.objを生成します。
また,アセンブル・リスト・ファイルも出力します。
>asrl file1.asm -prn_path -cpu=S2 -dev=dr5f100pj.dvf
>asrl file2.asm -prn_path -cpu=S2 -dev=dr5f100pj.dvf
|
オブジェクト・ファイルfile1.obj,file2.obj,file3.objをrlinkでリンクして,リンク・マップ・ファイルsample.map,およびロード・モジュール・ファイルsample.absを生成します。
>rlink file1.obj file2.obj file3.obj -output=sample.abs -list
|
ライブラリジェネレータ(lbgrl)を起動して標準ライブラリを生成します。