arm嵌入式设备工具移植指南

fio移植编译方法:


$make clean
$make CROSS_COMPILE=/path/to/toolchain/prefix
例如:
make CROSS_COMPILE=工具链目录公有头
make CROSS_COMPILE=/xxx/xxx/xxx/arm-linux/target/bin/arm-linux-
备注:
若出现 对‘posix_madvise’未定义的引用 的错误,可以修改该函数为madvise
 

iozone移植编译方法:


方法1:阉割掉iozone对aio的支持 
修改src/current下的makefile的cc和GCC为当前交叉编译工具链,将所有"linux-arm"目标中的“-DASYNC_IO”删掉,并且,将所有"linux-arm"目标中的生成xxxasynxxx.o的命令删掉
make clean
make linux-arm
成功生成iozone
方法2:添加对aio库的支持 备注:未成功
因为在aio.h中,还包含了很多其他文件,而这些文件又是uclibc中所没有的,所以单纯找到aio.h和aio.c然后编译进来是不可以的。方法如下:   

  • 把其他包含aio.h的libc/usr库(包含include、lib等)
  • 修改makefile:
    • CC  = arm-linux-gcc
    • GCC = arm-linux-gcc
    • CFLAGS  = -Wall -static
    • CFLAGS  = -L /xxxx/lib
  •  make clean
  •  make linux-arm
  •  成功生成iozone 

注意:
本处不能指定-I目录为/xxxx/include,如果指定了,会报错:iozone_linux-arm.o:在函数‘begin’中:iozone.c:(.text 0xda0):对‘__xstat64’未定义的引用

smartmontools交叉编译:


  1. ./configure --host=arm-linux
  2. make

strace-4.9交叉编译:


  1. ./configure --host=arm-linux  
  2. make

mdadm-4.1交叉编译:


  1. 修改Makefile,增加CC赋值为需要的编译工具链
  2. make

你可能感兴趣的:(linux工具)