これまでcygwin上のgccでプログラムしてきましたが、今回
OS : Windows7
コンパイラ名 : VC++ 2008 Express Edition
で、次のような状況のプログラムをコマンドラインでコンパイルしてみようと思いました。
main.c
sub1.c
sub2.c
main.cがsub*.cを参照する場合、通常Makefileを作成して作業しますが、
それっぽいMakefileを作って同じようにMakeすると
'make'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
を表示するため、VC++のコンソールコンパイル自体がそういう仕様ではない
ようです。VC++統合環境のヘルプやネット上で関連する情報を探していますが、
なかなかみつからず困っています。
どなたか事情に明るいかた、簡単にご説明いただけませんか。
一押ししていただければ検索して詳細は分かると思います。
VC++ コンソールでコンパイル
Re: VC++ コンソールでコンパイル
書いている間に自己解決されたようですが,一応。
また,コマンドプロンプトでのビルドに関しては,MSDN: C/C++ ビルドのリファレンスが参考になるかと思います。
VC++ではmakeを使わずに,nmakeを使います。ぽんた さんが書きました:それっぽいMakefileを作って同じようにMakeすると
'make'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
を表示するため、VC++のコンソールコンパイル自体がそういう仕様ではない
ようです。VC++統合環境のヘルプやネット上で関連する情報を探していますが、
なかなかみつからず困っています。
また,コマンドプロンプトでのビルドに関しては,MSDN: C/C++ ビルドのリファレンスが参考になるかと思います。
-
ぽんた
Re: VC++ コンソールでコンパイル
YuOさんありがとうございます。
なぜ同じ機能を提供する make なのにMicrosoftだけ nmake とか名前を変えるのでしょうね。
しかもコンパイルしてみると strcpy は色々ヤバいから俺の strcpy_s を使えとか
警告だらけでかえってC勉強中の私には余計なお世話な気がします・・・。
(深い事情は知らずに言ってます、#define strcpy strcpy_s しとけとか無しですよ)
ともあれ教えていただいたリファレンスが参考になりそうです。
なぜ同じ機能を提供する make なのにMicrosoftだけ nmake とか名前を変えるのでしょうね。
しかもコンパイルしてみると strcpy は色々ヤバいから俺の strcpy_s を使えとか
警告だらけでかえってC勉強中の私には余計なお世話な気がします・・・。
(深い事情は知らずに言ってます、#define strcpy strcpy_s しとけとか無しですよ)
ともあれ教えていただいたリファレンスが参考になりそうです。
Re: VC++ コンソールでコンパイル
Linuxが普及したいまでこそmakeと言えばGNU make(と互換性のあるmake)ですが、それ以前は仕様の違うmakeがたくさんありました。ぽんた さんが書きました:なぜ同じ機能を提供する make なのにMicrosoftだけ nmake とか名前を変えるのでしょうね。
nmakeはGNU makeとは仕様が違うので、むしろ同じ名前を付けなかったことで容易に使い分けができるのはありがたいと思います。