我想在x86机器上为ARM64交叉编译lmbench。我根据这里的指南构建了自己的交叉编译器:http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/
当我尝试使用这种交叉编译器交叉编译lmbench3时,我首先要:
sed -e "s/<version>/3/g" < ../scripts/lmbench > $O/lmbench
CC=aarch64-linux-gcc
,OS=aarch64-linux-gnu
,CFLAGS="$CFLAGS -static"
glibc-2.20/sunrpc/rpc
标头文件放入/opt/cross/aarch64-linux/include/rpc
文件夹gmake[1]: Entering directory `/home/florian/lmbench3/src'
aarch64-linux-gcc -O -DRUSAGE -DHAVE_uint=1 -DHAVE_int64_t=1 -DHAVE_DRAND48 -DHAVE_SCHED_SETAFFINITY=1 -o ../bin/aarch64-linux-gnu/bw_tcp bw_tcp.c ../bin/aarch64-linux-gnu/lmbench.a -lm
../bin/aarch64-linux-gnu/lmbench.a(lib_tcp.o): In function `tcp_done':
lib_tcp.c:(.text+0x18): undefined reference to `pmap_unset'
../bin/aarch64-linux-gnu/lmbench.a(lib_tcp.o): In function `tcp_connect':
lib_tcp.c:(.text+0x338): undefined reference to `pmap_getport'
../bin/aarch64-linux-gnu/lmbench.a(lib_tcp.o): In function `tcp_server':
lib_tcp.c:(.text+0x568): undefined reference to `pmap_unset'
lib_tcp.c:(.text+0x584): undefined reference to `pmap_set'
collect2: error: ld returned 1 exit status
gmake[1]: *** [../bin/aarch64-linux-gnu/bw_tcp] Error 1
gmake[1]: Leaving directory `/home/florian/lmbench3/src'
make: *** [lmbench] Error 2
我知道在pmap_set
中调用pmap_unset
,pmap_getport
和lib_tcp.c
,但我找不到他们的定义。当我为x86编译lmbench3时,我没有收到此错误,我在主机上检查了这些函数的定义,但仍然没有在任何地方找到它们。
有谁知道如何处理此错误?我想我仍然需要使用RPC,所以我不想评论任何一行。
答案 0 :(得分:0)
从错误信息中,ld找不到lib,请尝试以下操作
make results LDFLAGS=-ltirpc