首页 > 解决方案 > POSIX Shell 脚本使用 ./configure 引发语法错误

问题描述

我即将完成在我的 linux 机器上编译程序的依赖关系。我正在运行 Linux Mint 19 64 位。我似乎无法克服的最后一个障碍是有关配置 shell 脚本中特定行的语法错误。确切的错误是:

./configure:第 1804 行:意外标记附近的语法错误[foreign]' ./configure: line 1804:AM_INIT_AUTOMAKE([foreign])'

姊妹文件 configure.ac 引用了 AM_INIT_AUTOMAKE([foreign]),如果我删除了 [foreign] 的违规标记,则会出现许多其他错误。所以令牌在某种程度上似乎是必要的。

我所能得到的最远的结果是将括号的内容留空,并带有一个空格字符,因此它会显示为:AM_INIT_AUTOMAKE()。这满足了错误,但将语法错误移到了一行:ac_ext=c。

这是有问题的代码部分。

AM_INIT_AUTOMAKE([foreign])
ac_ext=c

这只是 2000+ 行文件中的两行。

shell环境是#! /bin/sh

为了彻底起见,我尝试将环境更改为 bash ,但这并没有什么不同。

我究竟做错了什么?

标签: autoconf

解决方案


d0_blind_id 包 ( https://gitlab.com/xonotic/d0_blind_id ) 包含一个名为autogen.sh. 运行这个脚本(它调用autoreconf -i)来创建configure. 运行configure,然后make

configure脚本不应包含autotools 用于生成脚本的部分AM_INIT_AUTOMAKE内容。configure.acconfigure

当我按照这些步骤操作时,我在运行脚本时没有收到任何错误,configure并且它不包含AM_INIT_AUTOMAKE.

我不知道您收到错误的原因,因为我无法复制该问题。


推荐阅读