I have an issue with cross compiling node.js to Cortex A5 target please guide me
我有一个Atmel SAMA5D31-ek,在它上面运行linux。以下是CPU信息
>cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 1 (v7l)
Features : half thumb fastmult vfp edsp vfpv3 vfpv3d16 tls vfpv4
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc05
CPU revision : 1
Hardware : Atmel SAMA5
Revision : 0000
Serial : 0000000000000000
我正在尝试为我的目标板交叉编译node.js.(https://nodejs.org/en/download/)
Corss编译状态:成功
node -v :打印我正在使用的节点版本 但是带有任何其他输入的节点会提供"非法指令" 检查"文件节点"命令,下面是我得到的结果。
npm -v 导致非法指令
# file node
node: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.26, BuildID[sha1]=ad3f999d0ef50a7a65ebee818c8b6b3c649e0640, not stripped
我的目标设备没有 ld-linux-armhf.so.3 ,因为我的根文件系统没有使用硬浮动。
混淆:在交叉编译期间需要设置哪些标志才能在我的A5目标上运行。
以下是CC设置:
export CROSS_COMPILE="/home/abc/workspace/Linux/gcc-sourcery-arm-linux-gnueabi-2012.03/bin/arm-none-linux-gnueabi-"
export PATH=/home/abc/workspace/Linux/gcc-sourcery-arm-linux-gnueabi-2012.03/bin:$PATH
export TOOL_PREFIX="arm-none-linux-gnueabi"
export CC="/home/abc/workspace/Linux/gcc-sourcery-arm-linux-gnueabi-2012.03/bin/arm-none-linux-gnueabi-gcc"
export CXX="/home/abc/workspace/Linux/gcc-sourcery-arm-linux-gnueabi-2012.03/bin/arm-none-linux-gnueabi-g++"
export AR="/home/abc/workspace/Linux/gcc-sourcery-arm-linux-gnueabi-2012.03/bin/arm-none-linux-gnueabi-ar"
export RANLIB="/home/abc/workspace/Linux/gcc-sourcery-arm-linux-gnueabi-2012.03/bin/arm-none-linux-gnueabi-ranlib"
export LINK="${CXX}"
export CCFLAGS="-g -O3 -mfloat-abi=softfp -mfpu=vfpv4-d16 -march=armv7 -mtune=cortex-a5"
export CXXFLAGS="-g -O3 -mfloat-abi=softfp -mfpu=vfpv4-d16 -march=armv7 -mtune=cortex-a5"
./configure --without-snapshot --dest-cpu=arm --dest-os=linux
make -j 4
**I am not clear about CCFLAGS and CXXFLAGS , please let me know where i went wrong and how to find the relevant information on these flags for particular processor platform.**