我需要交叉编译VALGRIND以在运行Linux的Freescale i.MX278(ARM 9)上运行。我有飞思卡尔自己提供的工具链。
我已经将PATH变量设置为工具链路径。我进一步使用以下命令:
$ export CROSS_COMPILE=arm-fsl-linux-gnueabi-
$ export CC=${CROSS_COMPILE}gcc
$ export CPP=${CROSS_COMPILE}cpp
$ export CXX=${CROSS_COMPILE}g++
$ export LD=${CROSS_COMPILE}ld
$ export AR=${CROSS_COMPILE}ar
$ ./configure --target=arm-fsl-linux-gnueabi \
--host=armv7-fsl-linux-gnueabi \
--prefix=/opt/valgrind \
CFLAGS=-static
它传递了./configure
,但在make
上失败并出现以下错误:
gcc: error: unrecognized command line option ‘-marm’
答案 0 :(得分:14)
首先运行以下命令在配置文件中进行更改
sed -i -e" s#armv7#arm#g"配置
然后运行configure选项。
将成功交叉编译。
答案 1 :(得分:0)
晚了一点,但是对于来到这里的其他人而言,似乎valgrind构建系统在在shell中设置环境变量并将其作为参数传递给configure
之间有所不同。试试:
$ export CROSS_COMPILE=arm-fsl-linux-gnueabi-
$ ./configure --target=arm-fsl-linux-gnueabi \
--host=armv7-fsl-linux-gnueabi \
--prefix=/opt/valgrind \
CFLAGS=-static \
CC=${CROSS_COMPILE}gcc \
CPP=${CROSS_COMPILE}cpp \
CXX=${CROSS_COMPILE}g++ \
LD=${CROSS_COMPILE}ld \
AR=${CROSS_COMPILE}ar