开源项目交叉编译问题

交叉编译开源项目

交叉编译某个应用程序时,通常需要 ./configure 来生成对应的 Makefile
./configure 最关键的三个选项是:

–host=HOST
指定软件运行的系统平台.如果没有指定,将会运行`config.guess’来检测.

–build=BUILD
指定软件包安装的系统平台.如果没有指定,默认值将是’–host’选项的值.

–target=GARGET
指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用’–host’选项的值.

一般而言,我们只要指定 –host 就可以了
记住:–host 指定的是交叉编译工具链的前缀

常见问题

1.host system type not recognized

./configure --host=aarch64-linux-gnu

结果输出

checking host system type... Invalid configuration  aarch64-linux-gnu': machineaarch64' not recognized

解决办法

sudo apt-get install libtool
cp /usr/share/libtool/build-aux/config.sub .
cp /usr/share/libtool/build-aux/config.guess .

参考编译脚本

./configure --host=aarch64-linux-gnu \
    --prefix=/home/lvxinliang/workspace/log4cpp/log4cpp/out

你可能感兴趣的:(Linux)