交叉编译 lmbench(riscv64)
一、准备编译链
riscv64 交叉工具链,可以从这里直接下载官方编译好的
https://github.com/riscv-collab/riscv-gnu-toolchain/tags
选择对应的版本,我这里是
riscv64-glibc-ubuntu-22.04-gcc-nightly-2024.09.03-nightly.tar.gz
将工具链移动到 /opt/riscv 下(opt 下经常放一些工具)
二、构建安装 libtirpc 库
参考 https://twd2.me/archives/15827
将 libtirpc 安装到对应的 sysroot 下,riscv64-unknown-linux-gnu-gcc 默认的 sysroot 是工具链所在的位置
三、编译 lmbench
报错 rpc/rpc.h 找不到,以及 undefined reference to `pmap_set’ 这样的错误
在 scripts/build 的脚本中修改最后一行
添加 -I/usr/include/tirpc 解决 rpc/rpc.h 头文件找不到的问题
添加 -ltirpc 解决 pmap_set 未定义这样的链接错误
# now go ahead and build everything!
${MAKE} OS="${OS}" CC="${CC}" CFLAGS="${CFLAGS} -I/usr/include/tirpc" LDLIBS="${LDLIBS} -ltirpc" O="${BINDIR}" $*
这样就没有编译错误了
# 默认动态链接
make
# 使用静态链接
make LDFLAGS=--static