2.5 stdin を使用したコンパイラへのソースコードの入力

ソースコードのファイルを作成する代わりに、stdin を使用して、コマンドラインからソースコードを直接入力できます。

この機能は、ファイルを作成せずに短いコードをテストしたい場合などに便利です。

手順

  1. 使用するコマンドラインオプションを指定して、コンパイラを起動します。デフォルトのコンパイラモードは C です。マイナス記号(-)をソースファイル名として使用して、stdin から入力を受け取るようにコンパイラに指示します。例えば、
    armcc --bigend -c -
    オブジェクトファイルの書き込みを行う場合は、-o オプションを使用します。プリプロセッサ出力を出力ストリームに送信するには、-E オプションを使用します。出力を stdout に送信するには、-o- オプションを使用します。入力が終了した後で、キーボード入力のアセンブリリストを出力ストリームに送信するには、これらのいずれのオプションも使用しません。
  2. マイナス記号の後の同じ行には入力できません。Return キーを押していない場合は、押す必要があります。
    コマンドプロンプトが表示され、入力の待機状態になります。
  3. コードを入力します。例えば、
    #include <stdio.h>
    int main(void)
    { printf("Hello world\n"); }
    
  4. 入力を終了するには、以下の操作を行います。
    • Microsoft Windows システムでは、Ctrl+Z キーを押してから Return キーを押します。
    • Red Hat Linux システムでは、Ctrl+D キーを押します。
キーボード入力の場合のアセンブリリストは、以下の条件の両方が満たされている場合に、入力が終了した後に出力ストリームに送信されます。
  • 出力ファイルが指定されていないこと。
  • -E などのプリプロセッサだけを起動するオプションが指定されていないこと。
それ以外の場合、-o オプションと -E オプションのどちらを使用したかに応じて、オブジェクトファイルが生成されるか、またはプリプロセッサ出力が標準出力ストリームに送信されます。
リンク手順を実行しているとき、コンパイラは、他のファイルと共に、ソースコードを標準入力ストリームから受け取ります。例えば、以下の指定を行うことができます。
  • armcc -o output.axf - object.o mylibrary.a
  • armcc -o output.axf --c90 source.c -
以下のコマンドを実行すると、標準入力で指定したソースコードがコンパイルされ、test.axf にリンクされます。
armcc -o test.axf -
標準入力を他のソースファイルと結合することができるのは、コードをリンクするときだけです。リンク時以外で標準入力を他のソースファイルと結合しようとすると、コンパイラによってエラーが生成されます。
関連する概念
2.1 コンパイラのコマンドライン構文
2.2 コンパイラコマンドラインオプションのグループ別一覧
関連情報
コマンドラインオプションの指定ルール
ツールチェーンの環境変数
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.