我要從建立與 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
因此,為了解決這個問題,我將 env 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 ,它嘗試為操作碼目錄建立庫,但遇到了相同的問題。如何在配置腳本中設定-rpath?或者甚至透過編輯 Makefile 來設定它?
答案1
在你的 ./configure 中,你已經得到--prefix=../gnutools
並且應該是--prefix=/gnutools
.它需要絕對路徑,而不是相對路徑。