アプリ版:「スタンプのみでお礼する」機能のリリースについて

【VC2005】コマンドプロンプトでc++をコンパイルしたい

いつもお世話になっています。

WindowsXP pro で VisualC2005を利用してます。
コマンドプロンプトでc++をコンパイル、及び、実行したいと思い、
下記のページを参考にさせていただきました。
http://www.ced.is.utsunomiya-u.ac.jp/lecture/200 …

上記の方法の専用のコマンドプロンプトではなく、通常のコマンドプロンプトから
上記で紹介された「cl」のコマンドを実行できないでしょうか。
(おそらく、Pathを通す(?)とかいう作業が必要なのかなと思っていますが、、、)

お手数ですが、よろしくお願いします。

A 回答 (7件)

もちろんできるんだけど, 設定しなきゃならない環境変数がいくつかあるのであんまりメリットはないと思うよ.


そのようにしたい理由がわからないのでなんとも言えないんだけど....
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

windows上で、他の言語から、既存のC++のソースを使用したいと思って
いろんなC++コンパイラを試している途中なのです。

何と比べてメリットがないのでしょうか。
また、勉強のため、本件の方法をご存知であれば
教えて頂きたくお願いします。

お礼日時:2010/04/02 23:25

コマンドプロンプトからコンパイルを実行するためには環境変数の設定が必要です。



まず必要な環境変数を調べてください。Visual Studioから起動するコマンドプロンプトでどんな環境変数が設定されているか見るのも参考になるでしょう。
今度はそれらの必要な環境変数を通常のコマンドプロンプトで設定します。毎回いちいち手打ちで設定するのは大変なので、設定用のバッチファイルを作っておき、コマンドプロンプトの起動時に実行するようにします。

Pathは環境変数の中に含まれています。Visual Studioの各種ツールを起動する時にPathが通っている必要があるので、それらのディレクトを環境変数「Path」に設定しておくのです。コマンドプロンプトはカレントディレクトリに無い実行ファイルは「Path」に指定されているディレクトリを探して起動します。
コンパイラ、リンカ等の動作には「Path」以外にも「INCLUDE」、「LIB」、その他の環境変数を設定しておく必要があります。

環境変数の設定・確認には「SET」コマンドを用います。単に「SET」とした場合は設定されている環境変数を表示します。
環境変数を設定するときは「SET AAA=○○○」とすると環境変数AAAに○○○が設定されます。削除するときは「SET AAA=」とします。
    • good
    • 0

No.1さんも言っているようにあまりメリットがないと思います。


Windows上で他言語から利用したいならDLLにすべきでしょう。

DLL化するメリットとして
(1)バイナリ配布可能になる
  他のPCへインストールする際、コンパイラをインストールしないで済みます。

(2) コンパイル済みなので動作が高速
  ソースの大きさにもよりますが、通常ビルドには秒単位で時間かかりますよね。
  これが省略できます

DLL化を考えてみたら如何でしょうか。
Cインターフェースにすれば
VB等からも標準的な手法で呼び出せます。

何と言ってもWindowsAPI自体がDLLで実装されていますから!
    • good
    • 0

「何と比べて」と言えば, 当然比較対象は「それ用のコマンドプロンプト上で実行すること」です.


#2 でも書かれてるんだけど, Visual C++ がまともに動くようにするためにはいくつかの環境変数を設定しなきゃならない. で, それらの環境変数を設定するためにしかるべきファイルを実行することになる. ところが, そもそも「専用のコマンドプロンプト」は「環境変数を設定するためのバッチファイルを実行してるだけ」なので, それとは別に作ることにあんまり意味があると思えないんだな~.
もともと「専用」じゃないのでねぇ.
    • good
    • 0

正確な場所と名前は忘れましたが


vs8vars.bat
というような名前のバッチファイルが、インストールした場所のどこかにあります。

これを実行すると必要な環境変数の設定ができます。

ただ
スタート>VS2005>コマンドプロンプト
とするのを
・スタート>アクセサリ>コマンドプロンプト
・C:\Program Files....\vs8vars.bat
と2ステップになる、というのは既にある通りです。

>windows上で、他の言語から、既存のC++のソースを使用したいと思って
>いろんなC++コンパイラを試している途中なのです。

というのが今一つ意味がわかりません。
もしかして、
他言語でCのプログラムを出力→コンパイル→実行→結果を他言語で取り込み
みたいなことですか?

この回答への補足

貴重な情報、有難うございます。

>他言語でCのプログラムを出力→コンパイル→実行→結果を
>他言語で取り込みみたいなことですか?
そんな感じです。
(まだ、あまり詳細は決めていません。)
今回は、質問内容が実現できるかどうか確認したく、
質問させて頂きました。

補足日時:2010/04/04 22:20
    • good
    • 0

> 上記の方法の専用のコマンドプロンプトではなく、通常のコマンドプロンプトから


> 上記で紹介された「cl」のコマンドを実行できないでしょうか。
先ず、上記の方法で起動したコマンドプロンプトから、C:\>set >compile.bat
エディターでファイルを開き、compile.bat の全行先頭に"set "を追加すれば良い。
後は、ファイルの最後に cl などを追記してゆく。

なお、エディターと、バッチファイルは予備知識。
    • good
    • 0

#5の方のvsvars32.batについてですが、VisualStudio2005がインストールされている場合、



"%vs80comntools%vsvars32%"

で実行可能です。たとえば、プロンプトを起動して

"%vs80comntools%vsvars32"
cl x.cpp

とすればx.cppがコンパイルできるはず。
1コマンドでコンパイルしたければ

"%vs80comntools%vsvars32" & cl x.cpp

と1行で記述してもコンパイルできます。
    • good
    • 0
この回答へのお礼

ご回答、有難うございます。

出来ました♪!!

お礼日時:2010/04/04 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!