우리 팀은 장치 구성을 위한 웹 백엔드용 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을 시작하지 않는 것으로 추정됩니다.
여기서 우리가 무엇을 놓치고 있는지 아시나요? 도움이 된다면 전체 메이크파일을 게시할 수 있지만 이 문제에 대해서는 잡음처럼 보입니다. 하드웨어 부동 소수점이 없는 ARM 프로세서용 Node.js(0.10 이후 버전)를 구축한 사람을 찾고 우리가 놓쳤을 수 있는 구성/빌드 옵션이 무엇인지 알려주기를 바랍니다. 아니면 위의 옵션이 작동해야 하는데 우리가 잘못하고 있다고 말해 주세요.
답변1
나는 같은 문제가 있었다. 파일을 추가해서 해결했어요config.gypi이 두 줄:
'v8_can_use_fpu_instructions%': 'false', 'v8_use_mips_abi_hardfloat%': 'false',