我要从构建与 eCos 一起使用的工具链 我现在正在配置和构建 binutils 的工具:
./configure --target=arm-elf --prefix=../gnutools -v &> configure.out2
make -w all install &> make.out
但是当我运行 make 时,出现此错误:
libtool: link: only absolute run-paths are allowed
看起来 libtool 正在尝试使用不存在的 -rpath 构建 /bfd/libbfd.a 库:
libtool --mode=link gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -o libopcodes.la -rpath ../gnutools/x86_64-unknown-linux-gnu/arm-elf/lib -release 2.13.1 dis-buf.lo disassemble.lo arm-dis.lo
为了解决这个问题,我设置并将 var LIBDIR 环境设置为 lib 目录,我假设它正在寻找:
LIBDIR=/home/dan/dev/arm/crosstool/gcc-4.0.1-glibc-2.3.5/arm-linux/arm-linux/lib
并运行一个 bash 脚本,该脚本使用上述参数调用 libtool,但 -rpath 设置为 $LIBDIR,并且它使 libbfd.a 库正常运行。然后我运行 make,它开始尝试为 opcodes 目录创建库,但出现了同样的问题。如何在 configure 脚本中设置 -rpath?或者甚至通过编辑 Makefile 来设置它?
答案1
在您的 ./configure 中,您已经得到了它--prefix=../gnutools
,它应该是--prefix=/gnutools
。它需要一个绝对路径,而不是 ..relative。