私のチームは、デバイス構成用の Web バックエンドとして Node.js を実行する組み込み Linux OS 上で製品を開発しています。ハードウェア FPU のない ARM プロセッサを搭載したシステムにコードを移植しています (以前の製品には FPU がありました)。次のコンパイラ オプションを使用して Node.js をコンパイルしました。
--with-arm-float-abi=soft
そして
--with-arm-float-abi=softfp
しかし、どちらの場合も、Node.js はハードウェア浮動小数点を行おうとするため、実行時に不正な命令でクラッシュします。実行できnode --version
、バージョンを出力して終了するため、これは V8 エンジンにあるようです。ソースは確認していませんが、バージョン番号を出力するためだけに V8 を起動しているわけではないと思います。
ここで何が欠けているのか、何かお分かりですか? 役に立つなら makefile 全体を投稿することもできますが、この問題ではノイズのようです。ハードウェア浮動小数点を持たない ARM プロセッサ用に Node.js (バージョン 0.10 以降) をビルドしたことがある人を見つけて、欠けている可能性のある構成/ビルド オプションを教えていただければと思います。または、上記のオプションは機能するはずで、単に間違っているだけだと教えてください。
答え1
私も同じ問題を抱えていました。ファイルに追加することで解決しました設定.gypi次の2行:
'v8_can_use_fpu_instructions%': 'false', 'v8_use_mips_abi_hardfloat%': 'false',