背景:交叉编译avahi库时遇到错误“checking build system type... config.sub: missing argument” ,“configure:error: /bin/bash ./config.sub failed” ,如下图:
编译脚本:
#! /bin/bash
<<'COMMENT'
@File : avahi-compile.sh
@Time : 2019/05/30 19:27:09
@Author : LiPingping
@Version : 1.0
@Contact : youmakemewhole@163.com
@License : (C)Copyright 2017-2018, Twirling in time
@Desc : None
COMMENT
# here is main shell code.
export CPPFLAGS="-I/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/expat/include"
export CFLAGS="-I/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/expat/include"
export LDFLAGS="-L/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/expat/lib"
./configure --host=aarch64-linux-gnu \
--prefix=$(pwd)/../build_out/avahi \
--with-distro=archlinux \
--localstatedir=/var \
--with-xml=expat \
--with-avahi-user=root \
--with-avahi-group=root \
--disable-gdbm --disable-qt3 --disable-qt4 --disable-qt5 --disable-gtk --disable-gtk3 --disable-python --disable-mono --disable-pygobject \
--disable-doxygen --disable-manpages --disable-libevent --disable-FEATURE --disable-glib --disable-gobject \
DBUS_CFLAGS="-I/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/dbus/include/dbus-1.0/ -I/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/dbus/lib/dbus-1.0/include/" \
DBUS_LIBS="-L/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/dbus/lib -ldbus-1" \
LIBDAEMON_CFLAGS="-I/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/daemon_arm_prefix/include" \
LIBDAEMON_LIBS="-L/home/lee/Desktop/twProject/snapcast/snapcast-rockship/Nenopi2-cross-compile-libs/build_out/daemon_arm_prefix/lib -ldaemon"
解决办法:
查找资料后,首先,我确认config.sub有可执行权限,其次,排查空格问题,最后找到在“--with-avahi-user=root \ ”的“\ ”后面找到一个空格,去掉\后的空格即可。解决办法让人意想不到。
参考:
Steps to cross-compile "avahi".
http://www.linuxdiyf.com/linux/22364.html
https://www.cnblogs.com/pysery/archive/2012/06/17/2552680.html