ARM的交叉编译Valgrind

问题描述 投票:8回答:2

我需要交叉编译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’
cross-compiling valgrind
2个回答
14
投票

首先运行以下命令在配置文件中进行更改

sed -i -e“ s#armv7#arm#g”配置

然后运行配置选项。

将成功交叉编译。


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
© www.soinside.com 2019 - 2024. All rights reserved.