autoconf - 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 ,但这并没有什么不同。
我究竟做错了什么?
解决方案
d0_blind_id 包 ( https://gitlab.com/xonotic/d0_blind_id ) 包含一个名为autogen.sh
. 运行这个脚本(它调用autoreconf -i
)来创建configure
. 运行configure
,然后make
。
configure
脚本不应包含autotools 用于生成脚本的部分AM_INIT_AUTOMAKE
内容。configure.ac
configure
当我按照这些步骤操作时,我在运行脚本时没有收到任何错误,configure
并且它不包含AM_INIT_AUTOMAKE
.
我不知道您收到错误的原因,因为我无法复制该问题。
推荐阅读
- docker - docker build question没有读取权限
- vue.js - 工具提示不适用于移动/ipad,但适用于笔记本电脑
- build - 是否有相当于“仅显示最新构建状态”的 Jenkins 管道?
- sqlite - Android上后台获取中的Flutter访问数据库
- python - 如何找到最小的四位数字,其数字不重复,但加起来是一个随机数
- php - 如何在codeigniter 4中使用ajax
- terraform - 如何在具有 0.12 for_each 的模块内拥有条件资源
- error-handling - 带有未定义索引的 php 文件中的错误,我已经尝试了一切
- angular - 重置 Angular 表单的更简洁方法
- node.js - 如何在 Gitlab CI 中使用用户名和密码将 Mongo 服务 URI 设置为变量?