ARM的交叉编译Valgrind

时间:2015-04-08 12:31:40

标签: cross-compiling valgrind

我需要交叉编译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’

2 个答案:

答案 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