cygwin でコンパイルエラー

「Raspberry Pi 電子工作レシピ」の配布用にCYGWINの設定済みのものを用意しています。

以前の CYGWIN だと、 ja_JP.UTF-8 にロケールを設定するにはインストール後に設定しないといけませんでした。

今回新たに設定するために試してみたら、最新版のものは自動で ja_JP.UTF-8 になるようです。

とても便利になりましたが、時にはこれが悪さをすることがあります。

今回、Windowsコマンドが文字化けする対策としてcocot をラッパーとして設定しようとするときに問題が発生しました。
cocot: COde COnverter on Tty

http://vmi.jp/software/cygwin/cocot.html

Owner@acerwin8 /usr/local/src/cocot-master
$ make
make all-am
make[1]: Entering directory ‘/usr/local/src/cocot-master’
2 [main] make 4352 fhandler_disk_file::fixup_mmap_after_fork: requested 0xize 65536, Win32 error 487
2541 [main] make 4352 C:\cygwin\bin\make.exe: *** fatal error in forked proce
3703 [main] make 4352 cygwin_exception::open_stackdumpfile: Dumping stack tra
79 [main] make 2780 fork: child -1 – forked process 4352 died unexpectedly,
make[1]: fork: Resource temporarily unavailable
make[1]: Leaving directory ‘/usr/local/src/cocot-master’
Makefile:166: recipe for target ‘all’ failed
make: *** [all] Error 2

これを回避するには、以下のようにして一時的に英語設定にします。

export LANG=C

これで make すると、無事コンパイルできました。

さて、この cocot ですが以下の内容を/etc/profileの最後に追加して設定しています。

alias ifconfig=”cocot ipconfig”
alias ipconfig=”cocot ipconfig”
alias arp=”cocot arp”
alias netstat=”cocot netstat”
alias arp=”cocot arp”
alias traceroute=”cocot tracert”
alias nslookup=”cocot nslookup”
alias route=”cocot route”
alias ping=”cocot ping”

ネットワーク系のコマンドはほとんどcygwinに無いので、Windows上にあるコマンドを呼び出せるものはこのようにすると文字化けせずに使えるようになります。