Gcc 如何将iw交叉编译到Xilinx Petalinux? 更新

Gcc 如何将iw交叉编译到Xilinx Petalinux? 更新,gcc,arm,cross-compiling,xilinx,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 -lpthr

错误发生在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,但问题是make安装在sudo下,但是sudo是一个不同的环境,它不识别路径。因此,解决方案是:

sudo -s
source /opt/pkg/......./settings.sh
Xilinx Petalinux需要source命令来获取路径。现在让安装工作

起初的 我正在遵循交叉编译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会抱怨找不到它呢?

问题在于下面的语句

./configure --host=arm-xilinx-linux-gnueabi --prefix=/usr/arm-xilinx-linux-gnueabi
arm-xilinx-linux-gnueabi
未安装在/usr,这就是为什么获取
arm-xilinx-linux-gnueabi-gcc:command-not-found
错误


安装臂工具链,然后按照

中提到的步骤操作。问题在于以下语句

./configure --host=arm-xilinx-linux-gnueabi --prefix=/usr/arm-xilinx-linux-gnueabi
arm-xilinx-linux-gnueabi
未安装在/usr,这就是为什么获取
arm-xilinx-linux-gnueabi-gcc:command-not-found
错误


安装arm toolchain,然后按照

中提到的步骤尝试以下操作:
/configure--host=arm-Xilinx-Linux-gnueabi--prefix=/usr/arm-Linux-gnueabi
,注意区别,错误仍然是未找到arm-Xilinx-Linux-gnueabi-gcc:command--prefix告诉安装到何处,不希望为交叉编译找到它:
/configure--host=arm-Xilinx-Linux-gnueabi--prefix=/usr/arm-Linux-gnueabi
,请注意区别,错误仍然是arm-Xilinx-Linux-gnueabi-gcc:command-not found--前缀告诉安装到哪里,不希望在交叉编译时找到它