【问题标题】:POSIX Shell Script throws syntax error with ./configurePOSIX Shell 脚本使用 ./configure 引发语法错误
【发布时间】:2018-11-29 01:58:56
【问题描述】:

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

./configure: line 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


    【解决方案1】:

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

    configure 脚​​本不应包含 AM_INIT_AUTOMAKE,它是 configure.ac 的一部分,自动工具使用它来生成 configure 脚本。

    当我按照这些步骤运行 configure 脚本并且它不包含 AM_INIT_AUTOMAKE 时不会出现任何错误。

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

    【讨论】:

    • 谢谢弗雷德!!这对我来说就像一个魅力。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多