如何交叉编译到Xilinx Petalinux?

时间:2015-07-09 19:01:47

标签: gcc arm cross-compiling xilinx

更新

错误发生在libtool的第8962行,它在循环内执行了很多命令。有问题的命令的内容是

arm-xilinx-linux-gnueabi-gcc -shared -fPIC -DPIC genl/.libs/ctrl.o genl/.libs/family.o genl/.libs/genl.o genl/.libs/mngt.o -Wl,-rpath -Wl,/usr/arm-linux-gnueabi/lib -L/usr/arm-linux-gnueabi/lib -lnl-3 -lpthread -lm -O2 -Wl,--version-script=../libnl.sym -Wl,-soname -Wl,libnl-genl-3.so.200 -o .libs/libnl-genl-3.so.200.19.0

如果我手动运行它,它会说

error: genl/.libs/ctrl.o: No such file or directory
<。> .o s在那里,但问题是make install是在sudo下,但是sudo是一个不同的环境,它无法识别路径。所以解决方案是:

sudo -s
source /opt/pkg/......./settings.sh
Xilinx Petalinux需要

源命令用于路径。现在make install将起作用

原始

我正在跟随beyond logic example交叉编译iw工具。第一步是libnl。我正在使用CentOS交叉编译libnl,所以我必须运行source /opt/pkg/.../settings.sh来设置arm-xilinx-linux-gnueabi-gcc路径。然后我使用了./configure --host=arm-xilinx-linux-gnueabi --prefix=/usr/arm-xilinx-linux-gnueabi

make运行正常。但make install失败并出现以下错误:

libtool: install: (cd /xxx/libnl-3.2.24/lib; /bin/sh /home/xxx/libnl-3.2.24/libtool  --silent --tag CC --mode=relink arm-xilinx-linux-gnueabi-gcc -g -O2 -version-info 219:0:19 -Wl,--version-script=../libnl.sym -o libnl-genl-3.la -rpath /usr/arm-xilinx-linux-gnueabi/lib genl/ctrl.lo genl/family.lo genl/genl.lo genl/mngt.lo libnl-3.la -lpthread -lm )
/xxx/libnl-3.2.24/libtool: line 8962: 
            arm-xilinx-linux-gnueabi-gcc: command not found
libtool: install: error: relink `libnl-genl-3.la' with the above command before installing it

make[3]: *** [install-libLTLIBRARIES] Error 1
make[3]: Leaving directory `/xxx/libnl-3.2.24/lib'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/xxx/libnl-3.2.24/lib'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/xxx/libnl-3.2.24/lib'
make: *** [install-recursive] Error 1

因为make使用arm-xilinx-linux-gnueabi-gcc成功,为什么make install抱怨它无法找到它?

1 个答案:

答案 0 :(得分:0)

问题在于以下陈述

./configure --host=arm-xilinx-linux-gnueabi --prefix=/usr/arm-xilinx-linux-gnueabi
/ usr上未安装

arm-xilinx-linux-gnueabi这就是导致arm-xilinx-linux-gnueabi-gcc: command not found错误的原因。

安装arm工具链,然后按照beyond logic example

中提到的步骤操作