POSIX Shell脚本使用./configure引发语法错误

时间:2018-11-29 01:58:57

标签: autoconf

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

./ configure:第1804行:意外令牌function sortFunc(a, b) { return a - b; } function combinationSum(cands, t) { cands.sort(sortFunc); let dp = []; //[[[]]]; for (let i = 1; i <= t; i++) { let newList = []; // [[]]; for (let j = 0; j < cands.length && cands[j] <= i; j++) { if (i === cands[j]) { newList.push([cands[j]]); } else { for (l of dp[i - cands[j] - 1]) { // for of is similar to `for (List<Integer> l : dp.get(i-cands[j]-1))` if (cands[j] <= l[0]) { let cl = [cands[j], ...l] // use spread ...l to get ArrayList.addall() behavior newList.push(cl) } } } } dp.push(newList); } return dp[t - 1]; } let arr = [2, 3, 5, 4]; let t = 7; let out = combinationSum(arr, t); console.log(out); AM_INIT_AUTOMAKE([foreign])'

附近的语法错误

姐妹文件configure.ac引用了AM_INIT_AUTOMAKE([foreign]),如果我删除了[foreign]的令人讨厌的令牌,则会出现许多其他错误。因此,以某种方式使用令牌似乎很有必要。

我能得到的最大的是,用一个空格字符将括号的内容留空,因此它将显示为:AM_INIT_AUTOMAKE()。这样可以满足错误要求,但会将语法错误向下移动到ac_ext = c。

这是代码中令人讨厌的部分。

[foreign]'
./configure: line 1804:

在2000+行文件中只有两行。

shell环境是#! / bin / sh

为了彻底了解,我尝试将环境更改为bash,但这并没有什么改变。

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

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

configure脚本中不应包含AM_INIT_AUTOMAKE一部分的configure.acconfigure会被自动工具用来生成configure脚本。

按照这些步骤操作时,运行AM_INIT_AUTOMAKE脚本不会出现任何错误,并且它不包含if (IF.text.Length > 0 && IF.text.Length <= 20) { int PlayerAmount = Int32.Parse(PlayerField.text); RoomOptions roompos = new RoomOptions() { IsVisible = true, IsOpen = true, MaxPlayers = (byte)PlayerAmount }; roompos.CustomRoomProperties = new ExitGames.Client.Photon.Hashtable(); roompos.CustomRoomProperties.Add("OnlineArray", BehaviourModel.OnlineArray); roompos.CustomRoomProperties.Add("PlayerLock", ScoreScript.PlayerLock); roompos.CustomRoomProperties.Add("PlayerDic", WinPanelS.PlayerDic); if (!PrivacyB.Privacy) { if (PI.text.Length > 5) { Password = PI.text; roompos.CustomRoomProperties.Add("Password", Password); HavePass = true; } else { A.Play(); } } else { roompos.CustomRoomProperties.Add("Password", null); } string[] Property = new string[] { "Password" }; roompos.CustomRoomPropertiesForLobby = Property; PhotonNetwork.CreateRoom(IF.text, roompos); PhotonNetwork.CurrentRoom.SetPropertiesListedInLobby(Property);

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