我有一台cpu为armv7但没有fpu的设备。
我可以使用选项--with-arm-float-abi = soft来编译 Node ,但是当我运行“Node ”时,发生了“非法指令(内核已转储)”。
root@router:/tmp/target/bin# ./node -v
v4.2.4
root@router:/tmp/target/bin# ./node --v8-options | head -2
target arm v7 vfp3 soft
ARMv7=1 VFP3=1 VFP32DREGS=0 NEON=0 SUDIV=0 UNALIGNED_ACCESSES=1
MOVW_MOVT_IMMEDIATE_LOADS=0 COHERENT_CACHE=0 USE_EABI_HARDFLOAT=0
工具objdump向我展示了正在使用的指令(例如vpush,vpop ...)不受我的cpu(不带fpu的arm v7)的支持。
更进一步,我发现 Node 源中的openssl和v8使用fpu的指令。
配置行如下
./configure \
--prefix=target \
--dest-cpu=arm \
--dest-os=linux \
--without-snapshot \
--with-arm-float-abi=soft \
--fully-static
有人可以告诉我如何在不支持fpu的情况下编译node-v4.2.4吗?
源代码:nodejs-v4.2.2
ARM 版本:Cortex-A9 Floating-Point Unit (FPU)(Optional)
最佳答案
经过多次尝试,我改用node-v0.10.14,它在不支持fpu的情况下也能很好地工作。 ;-)
所以我仍然不知道如何在不支持fpu的情况下编译nodejs-v4.2.2。
关于c++ - 如何在没有fpu的情况下使用armv7编译node-v4.2.4?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34871072/