【问题标题】:Compile nodejs 10.36 for armv7 on armv7在 armv7 上为 armv7 编译 nodejs 10.36
【发布时间】:2015-02-05 06:48:37
【问题描述】:

我尝试在 chroot (armel wheezy) 环境中的嵌入式 linux 上编译 node.js。该系统具有所有必要的工具版本。

  • Python 2.7.3
  • GCC 4.6
  • GNU Make 3.81

CPU信息:

处理器:ARMv7 处理器 rev 10 (v7l) 处理器:0 BogoMIPS : 790.52

处理器:1 BogoMIPS : 790.52

处理器:2 BogoMIPS : 790.52

处理器:3 BogoMIPS : 790.52

特点:swp 半拇指 fastmult vfp edsp 霓虹灯 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(platform-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 exit status make[1]: * [/root/node-v0.10.36/out/Release/node] 错误1 make[1]: 离开目录 `/root/node-v0.10.36/out' make: * [node] 错误 2

我不知道如何链接文件。如何完成链接过程?

【问题讨论】:

    标签: node.js gcc embedded-linux gnu-make armv7


    【解决方案1】:

    我找到了一个可行的解决方案。

    我添加了参数 -mthumb-interwork 并在没有任何参数的情况下对其进行了配置。现在已经编译安装好了。

    导出 CFLAGS='-march=armv7-a -mthumb-interwork' export CXXFLAGS='-march=armv7-a -mthumb-interwork'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多