arm-hisiv610-linux,为hisiv200交叉编译valgrind3.7

环境:ubuntu11.10

编译器:hisiv200的gcc版本4.4.1

代码:valgrind版本3.7

//============================================================

hisiv200 的工具目录在/home/tomren/hisi-linux

注意设置工具链的时候使用绝对路径!不要使用相对路径,我开始使用~/hisi-linux/...会提示找不到编译器。

(我当时没注意它找不到编译器的提示,因为我反复执行单条命令是可以编译成功文件的)

命令如下:

CC='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-gcc' LD='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-ld' CXX='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-c++' AR='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-ar' CFLAGS="-I/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/target/usr/include/" LDFLAGS="-L/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/target/usr/lib" ./configure --host=armv7-a-linux --build=i686-pc-linux-gnu --prefix=/home/tomren/valgrind

下面这个只是为了看着工整点:

1 CC='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-gcc' 2 LD='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-ld' 3 CXX='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-c++' 4 AR='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-ar' 5 CFLAGS="-I/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/target/usr/include/" 6 LDFLAGS="-L/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/target/usr/lib" 7 ./configure --host=armv7-a-linux --build=i686-pc-linux-gnu --prefix=/home/tomren/valgrind

--host 是编译后运行的平台

--build 是编译器运行的平台

--prefix 是执行 make install 后安装的目录

如果使用的 CFLAGS 和 LDFLAGS 如果有多个路径,使用冒号“:”分割。

//============================================================

感觉编译成功也是运气吧,一点点试出来的。

如果把时间都算下来,我差不多试了2天多些,希望能帮助要在相同芯片上使用valgrind的朋友。

//============================================================

在这个正确编译版本之前,我还试了下面这个命令,因为我们的CodeBlocks下的CFLAGS设置了这些参数,

但我在这里也同样设置时编译过程中报错了,我并不知道原因,去掉后就正常编译过了。

CC='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-gcc' LD='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-ld' CXX='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-c++' AR='/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-ar' CFLAGS="-fpic -shared -fvisibility=hidden -marm -mcpu=cortex-a9 -mfpu=vfp -mfloat-abi=softfp -march=armv7-a -mtune=cortex-a9 -fsingle-precision-constant -fsigned-char -I/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/target/usr/include/:/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/include/c++/4.4.1" LDFLAGS="-L/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/target/usr/lib:/home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/arm-hisiv200-linux-gnueabi/lib" ./configure --host=armv7-a-linux --build=i686-pc-linux-gnu --prefix=/home/tomren/valgrind

//============================================================

此外我还修改了configure文件中的一处地方

我在

gcc_version=`${CC} --version \

| head -n 1 \

| $SED 's/i686-apple-darwin10//' \

| $SED 's/i686-apple-darwin11//' \

| $SED 's/^[^0-9]*\([0-9.]*\).*$/\1/'`

这句话的地方添了下面这句话,对gcc_version又强制赋值了一次。

gcc_version=4.4.1

gcc_version中的4.4.1是通过目标编译器的gcc --version得到的

之所以添上这句话,是因为通过第一条命令的出的gcc_version变量在后面会有问题,后面打印出来是200

(我输出过gcc_version是4.4.1,我并不知道后面使用时为什么是200)

所以默认情况下会出错,得到:

checking dependency style of /home/tomren/hisi-linux/x86-arm/arm-hisiv200-linux/bin/arm-hisiv200-linux-gnueabi-gcc... gcc3

checking for diff -u... yes

checking for a supported version of gcc... no (200)

configure: error: please use gcc >= 3.0 or clang >= 2.9

//============================================================

End :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值