我使用以下工具链交叉编译了用于Atmel SAMA5D36的nodejs 0.12.2
export AR=arm-linux-gnueabihf-ar
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export LINK=arm-linux-gnueabihf-g++
Run Code Online (Sandbox Code Playgroud)
并配置和构建如下
./configure --without-snapshot --dest-cpu = arm --dest-os = linux --prefix =/home/root/nodejs-v0.12.2
make make install DESTDIR =/home/user/Desktop/nodejs_arm/nodebins
编译的文件夹在/ home/user/Desktop/nodejs_arm/nodebins/home/root中生成
我将该文件夹压缩成tar文件并传输到AtmelSAMA5D36 arm board.我在/ home/root目录中的板上解压缩并在符号链接后创建
ln -s /home/root/nodejs-v0.12.2/bin/npm /bin/npm
ln -s /home/root/nodejs-v0.12.2/bin/node /bin/node
Run Code Online (Sandbox Code Playgroud)
当我使用"node -v"和"npm -v"测试它时,
"node -v"给出正确的输出但是
"npm -v"抛出"非法指令"错误
与"节点"相同.
但是,交叉编译的nodejs 0.10.40工作正常.
任何帮助都非常感谢.
更新:
(gdb) run
Starting program: /usr/bin/node
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
0xb6edfec0 in _armv7_neon_probe () from /usr/lib/libcrypto.so.1.0.0 …Run Code Online (Sandbox Code Playgroud)