このページの内容 |
---|
UNIXのエディタとVC++を同時に使う方法 |
定期的に UNIX から Windows にコピー |
UNIX 上にファイルをおく方法 |
Windows 上にファイルをおく方法 |
逃げ道 |
ありがたいスポンサー様 |
---|
UNIX 畑の人は、Windows のエディタなんか使ってられないと思います。ここでは、UNIX で慣れ親しんだエディタと VC++ を組み合わせて使う方法を考察してみたいと思います。
VC++ を使う以上は OS を Windows に統一するのが自然でしょう。UNIX のエディタは、TeraTerm や PuTTy などの Windows クライアントから使えばよいでしょう。X じゃなきゃ嫌だ、なんて言う人は Cygwin+XFree86 をインストールして、 rootless モードで X サーバーを立ち上げるのがよいでしょう。
さて、次に問題となるのは、ファイルをどのように同期を取るかです。UNIX のエディタで編集しても、その変更を VC++ が読み取れないとどうしょうもないですね。考え付く方法を次にリストアップしてみます。
これらについて、具体例と私の所感を記しておきます。どれが一番優れていると思うかは人それぞれだと思います。どうぞ、しっくり来る方法をさがしてみてください。
UNIX 上のファイルと Windows 上のファイルを同じものにするために、毎回 UNIX から Windows にコピーする方法が考えられます。
定期的にコピーするイメージ
ただし、この方法は、ひとえにめんどくさいですね。開発に集中してくると、同期をとるのを忘れたりして、混乱してしまうことも起こるでしょう。逃げ道として、数分おきに cron で定期的に rsync という方法も考えられますが、この場合、常に UNIX 側が最新のファイルでなくてはならず、VC++ のエディタから編集しても rsync によって上書きしてしまうこととなってしまいます。
いずれにしても、この方法はできれば避けたいところです。そこで、同じファイルを参照する方法が思いつきます。
まずは、Linux 上のファイルに統一する方法を考えてみます。Windows から UNIX のファイルシステム上のファイルを利用する方法です。メジャーどころでいくと Samba や NFS がありますし、最近話題の WebDAV もあるでしょう。他にもいろいろあると思いますが、筆者が知っているのはそれぐらいです。
UNIX 上のファイルに統一する
バージョン2.0.10-ja-1.2 では、UNIX 上でファイルを更新しても VC++ はファイルが更新されたことを認識していませんでした。あるソースファイルを UNIX で編集したのち、VC++ でビルドしても変更されたソースファイルをリコンパイルしてくれないわけです。
ところが、バージョン2.2.7a-ja-1.1 に上げてみたところ、VC++ のコンパイラはファイルの更新を認識してくれました。これで、ビルド時に不具合が発生することはなさそうです。ただし、VC++6.0 のエディタは、未だにファイルが更新されたことを自動的に検知してくれませんでした。秀丸ならしてくれたのに…。
NFS ならいけそうな予感もするんですが。Windows から NFS を見るためには、Microsoft 社の Service for UNIX(有料)を使うのが無難でしょうか。試した方がいらっしゃったら連絡ください。
WebDAV は最近注目されているファイルシステムの構築方法です。利点は、UNIX と Windows が同じサブネットにいなくても使える点でしょう。私は、試したことないです。
では、Windows 上のファイルを UNIX から見に行く方法を考えてみます。
Windows 上のファイルに統一する
Samba パッケージに付属してくる smbmount を使うと、Windows の共有ファイルを UNIX ファイルシステム上にマウントすることができます(Linux 限定らしい)。smbmount を使って、TEST というコンピュータ名の sample という共有ファイルを /mnt/win にマウントするには
smbmount //TEST/sample /mnt/win [-o <オプション>]
とすればよいでしょう。オプションには、
username | ユーザー名 |
uid | マウント後のファイル所有者 |
gid | マウント後のファイル所有グループ |
fmask | マウント後のファイルパーミッション |
などを、カンマで区切って指定できます。マウントするので、sudo しないといけないかもしれません。
さて、smbmount を行った場合ですが、UNIX でファイルを変更すると、しっかりと VC++ でも変更を読みとることができます。まさに、エディタだけ UNIX 化を実現することができます。
ビルドの結果は、<プロジェクト名>.plg という名前で保存されるので、この内容を解析して、エラー箇所にとぶようなマクロを作成するとデバッグ効率が上がるかもしれませんね。
SOSS-NFSという Windows を NFS サーバーにしてしまうソフトがあるらしいです。私は試したことないです。
上のどれも嫌だという人のために。
UNIX 系の多くのエディタは、Windows に移植されています。vi 系の gvim, Emacs 系の Meadow などです。これを使うというのも折衷案として素敵でしょう。
クライアントに Windows を使わないなら、この方法ぐらいでしょう。Windows をネットワーク越しに操作することができます。でも、、、それなりに負荷がかかるんですよ。