我需要交叉编译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’
首先运行以下命令在配置文件中进行更改
sed -i -e“ s#armv7#arm#g”配置
然后运行配置选项。
将成功交叉编译。
晚会晚了一点,但是对于任何其他来这里的人来说,似乎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