make (e=87): パラメータが間違っています。

Mbedのプロジェクトをオンラインコンパイラからエクスポートして、WindowsEclipse系のオフラインビルド環境にインポートしてビルドすると次のようなエラーが出る場合がある。

make (e=87): パラメータが間違っています。

英語環境だと次の通り。

make (e=87): The parameter is incorrect.

このエラーはピルドのコマンドラインが長すぎる場合に発生する。WindowsのCreateProcess()でプロセスを生成する場合、コマンドラインの長さは最大32768文字であり、これを超える場合にこのエラーが出る。Mbed OS 5のプロジェクトで大量のオブジェクトファイルをリンクして実行バイナリを生成するときにこのエラーが発生することがある。実際、エラー発生時のリンカのコマンドラインを調べるとなんと5万文字を超えていた。

なお、LinuxMacでは発生しないようだ。LinuxMacのような「適切な」OSを使用する以外に回避策はないのかもしれない(笑)

参考

github.com