プチネタでまたavrを使ってみようと思い、win-avrをダウンロードしてインストールした。試しにcygwinの環境でコンパイラを動かしてみると以下のエラーメッセージが。。
少しぐぐったけど、これはcygwinの問題ではなくて、windows側の問題のようだ。Visual C++とかでも出るようで、ライブラリの整合性の問題か?? たしかに、Visual C#は入ってるけど。。原因がよく分からない。
$ avr32-gcc hello.c
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
ちなみに、cygwinの環境でavr32-gccを走らせるとエラーになるが、DOS窓だったらエラーにならない。パスも同じに揃えても結果は変わらず。
なお、一度にコンパイル>アセンブル>リンクとやるとエラーになるけど、コンパイルだけして、生成されたソースをアセンブラで分けてコード生成するとエラーにならない。なぜか分からんけど、分割コンパイル(って言うのか)すると問題ないので、臭い逃げの方法だけど、Makeで分割コンパイルするようにして逃げるか。。
本当なら根本原因を探りたいところだけど、情報もあまりなくて分からない。
さらに調べていると、TMPの環境変数が設定されていないとエラーになるという記事を見つけて試してみた。すると、、以下のとおり正常に動作するようになった。
$ export TMP=/tmp
$ avr-gcc hello.c
// 正常にコンパイル終了$ unset TMP
$ avr-gcc hello.cThis application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
// 上記のとおりエラー中断
はぁーすっとした。Thanks!!
しかし、、あまりに情報が少ないのだけど、みんなはまってないのかなーー!?
■ご参考URL
cles::blog平常心是道様; TEMPがないとMinGWのGCCがクラッシュする
http://blog.cles.jp/item/3874
(トラバ飛ばしたけどエラーになった。。でも感謝!)