差分表示


*&date(Y-n-j[lL],2010/3/13); win標準と衝突するunix系コマンド.

[[こちら>http://blog.kmckk.com/archives/2435623.html]]でclangのvcでのコンパイルを紹介されてたので、やってみた。出来たコンパイラを使うとincludeでvc側の
ヘッダ読み込まれてエラー。 _WIN32が定義されてるし、何か、しなきゃいけない
(環境)設定が抜けてるんだろうなあ。
(includeしてないソースのコンパイルでasmソースはつくれてた)
(includeしてないソースのコンパイルでexeやasmはつくれてた)

で、そのとき、[[こちら>http://sourceforge.net/projects/getgnuwin32/]]の GnuWin32 をインストール.

cygwinやmsys同様 unix系フォルダ構成を持つ状態のコマンドラインツール群で、
dllや言語ファイルがあるので単体コマンドを流用したい身には一長一短だけど、
コンパイラやスクリプト言語等は含まれていないので、ある意味、身軽で、
通常(常用)の''環境変数PATHの最後にGnuWin32/binを追加''して使うのでも
よいように思えてきた。

unix系ツールと win(dos)標準コマンド名でいくつか衝突するけど、Windows/System32/*.exeとgnuwin32/bin/*.exeを比べると

#tbl2(width=92%,align=center,cellpadding=8,border=0,cellspacing=1, width1=20%,valign=top)
#tbl2_th
calc.exe
#tbl2_td
電卓だが、gnuのはコンソール、WinのはGUIアプリ.
#tbl2_th
expand.exe
#tbl2_td
圧縮データの解凍、だが、対象とするデータ形式は(たぶん)違ったはずだし、
引数オプションも違う.
#tbl2_th
find.exe
#tbl2_td
gnuのは ファイル検索、Winのは テキスト中の文字列検索.
#tbl2_th
sort.exe
#tbl2_td
ともにテキストのソートだが、オプション引数は違う.
#tbl2_th
whoami.exe
#tbl2_td
ともにユーザー名表示だが、表示形式が若干違い、gnuのは ユーザー名だけだが、winのは コンピュータ名\ユーザー名 となっている. オプションも違う.
#tbl2_end

ぐらいか。~
まあ、これらが関係ない状況で使う分には大丈夫かな、と。

当然他のパスも通るので衝突がありえるけど. 
(コンパイラ関係だと link.exe とか) ~
cmd.exeの内蔵のecho,mkdirも衝突するが内蔵コマンドゆえwin側としては問題なし.
unix系ベースで考えるときは問題あるだろうけど、そういうときは cygwin,msysあたりをつかっているだろう、で.


~

※と書いたが、別に GnuWin32 でなくmsys でもほぼ同様かもだけど...
(cygwinはともかく msys+mingw環境も特殊性があるのかどうか)

----
#comment