我尝试编译以在chroot(armel wheezy)环境中的嵌入式Linux上编译node.js.系统具有所有必需的工具版本。
cpuinfo中:
处理器:ARMv7处理器rev 10(v7l) 处理器:0 BogoMIPS:790.52
处理器:1 BogoMIPS:790.52
处理器:2 BogoMIPS:790.52
处理器:3 BogoMIPS:790.52
特点:swp half thumb fastmult vfp edsp neon vfpv3 CPU实现者:0x41 CPU架构:7 CPU变体:0x2 CPU部分:0xc09 CPU修订版:10
经过几次尝试和网络研究,我可以编译它,但我在链接时收到错误。
我执行以下操作:
export CFLAGS='-march=armv7-a'
export CXXFLGAS='-march=armv7-a'
./configure --dest-cpu=armv7 --without-snapshot --without-ssl --dest-os=linux
我改变了选项,但没有效果。 使用--dest-cpu = arm作为选项导致编译错误(没有BLX支持)。因此我使用了armv7,这是该系统上正确的CPU。 我在编译并链接以下错误后收到:
/root/node-v0.10.36/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a(平台posix.o): 在函数
v8::internal::init_fast_log_function()': platform-posix.cc:(.text+0x598): undefined reference to
v8 :: internal :: CreateTranscendentalFunction(v8 :: internal :: TranscendentalCache :: Type)' /root/node-v0.10.36/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a(platform-posix.o): 在函数v8::internal::init_fast_sqrt_function()': platform-posix.cc:(.text+0x5e4): undefined reference to
v8 :: internal :: CreateSqrtFunction()' collect2:ld返回1退出 status make [1]: * [/root/node-v0.10.36/out/Release/node]错误1 make [1]:离开目录`/root/node-v0.10.36/out' make:* [节点] 错误2
我不知道,我可以做些什么来链接这些文件。如何完成链接过程?
答案 0 :(得分:1)
我找到了一个有效的解决方案。
我添加了参数-mthumb-interwork,并在没有任何参数的情况下对其进行了配置。现在它已经编译和安装。
export CFLAGS =' - march = armv7-a -mthumb-interwork' export CXXFLAGS =' - march = armv7-a -mthumb-interwork'