メモ


javaプログラムで作成したC言語処理系の利用ツールにかんする様々な問題と対応


1.C言語処理系の利用

C言語処理系のコマンドラインからの利用はコマンドプロセッサのCUIを利用して行う。
Windowsの場合はcmd.exeを起動し、これに対する引数として一連の実行コマンドを与える。

1-1.コンパイル環境の用意

1)カレントディレクトリ

全てのファイル名をフルパスにすることも出来るが、カレントディレクトリを設定することで、コマンドラインは簡素化でき、トラブルも減ると思われる。起動した端末カレントディレクトリを変更するには

2)PATH設定

C言語処理系のコンパイラやリンカーの場所をPATHに含めるとコマンドラインは簡素化できる。

3)その他の環境変数設定

処理系によっては様々な環境変数の設定を要求するものがある。

1-2.コンパイルのコマンドライン

1)コンパイルコマンド

標準的はコンパイルであれば既定値で一気にリンクまで済ませることも可能だが、やはり中身まで教えるには細かい処理が出来ないと不十分である。例えばプリプロセスのみの実行とか。

2)リンクコマンド

こちらは、リンクするライブラリーの指定があるので多様になる。この当たりの設定はマニュアルを見ないと解らない。しかもどこを見たら書いてあるのか探すのも一苦労。

1-3.コンパイル結果の受け取り

戻り値から旨く実行ファイルが作られたかは知ることが出来る。しかしエラーや警告の出力先(標準出力や標準エラー出力)や書式は処理系依存のためここから情報を取り出すプログラムは個別に作成することになる。国際標準のようなものが無いのは困り者?ないのかな〜。


2.コマンドの実行方法

前記のような一連の処理をコマンドプロセッサを用いて行うにはコマンドプロセッサについて色々知る必要がある。

2-1.コマンドプロセッサ

Windowsのコマンドプロセッサはcmd.exeでコマンドプロセッサを起動すると1個のCUI仮想端末を開く。起動時の引数オプションでコマンドを与えて実行し終了する場合と、端末を開いたまま終了せずに次のコマンドを待つ場合とを区別する。

この端末のカレントディレクトリや環境変数は起動時の値から次のコマンドで変更することが可能。

実行可能ファイルと引数の文字列をコマンド文字列に与えると、実行可能ファイルをメモリーに展開し引数文字列を渡して実行する。前期のコンパイルやリンクはこの方法で行う。ここで、例えばノートパッドを起動してhello.cを編集したければ

 

2-2.条件付き処理記号

条件付き処理記号を使うと、複数コマンドの実行や実行制御が可能になる。

条件付き処理記号には以下の様なものがある。

&&を使って複数のsetコマンドを実行する例。前のコマンドが成功した場合のみ後のコマンドが実行される。
cmd /c set "path=c:\Program Files\Microsoft Visual Studio\Vc98\Bin;%PATH%" &&
set "INCLUDE=C:\Program Files\Microsoft Visual Studio\Vc98\include\" &&
set "LIB=C:\Program Files\Microsoft Visual Studio\Vc98\Lib" &&


********************************************************************

 



環境設定

問題点:

ツールの実行環境に依ってはC/C++とJavaの環境設定がされていない、或いは想 定と異なる場合がある。
1)javaはレポートツールの実行環境として必要
2)C/C++はレポートツールからのCソースプログラムのコンパイルやリンクで必要
3)使える環境が複数ある場合の選択
環境に依って設定が異なる

解決方法




ああ