一、问题1
执行make V=99
报出错误:Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/${ <-- HERE ([^ \t=:+{}]+)}/ at xxxx/usr/bin/automake line 3939
二、原因
从perl v5.22开始:不再推荐在正则表达式中使用 {,而且如果没有转义 { 会有错误警告,从v5.26开始:不仅有警告,还会有语法错误提示。
此为Perl版本更新后对语法规范进行了变更,若左花括号作为文本则应当进行转义。
三、解决方法
在 openwrt
目录下cd build_dir/host/automake-1.15/bin/
vim automake
输入/text =
找到$text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
修改为$text =~ s/\$[{]([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
四、问题2
执行make V=99
报出错误:build_dir/host/u-boot-2014.10/lib/rsa/rsa-sign.c:279:21: error: dereferencing pointer to incomplete type 'RSA {aka struct rsa_st}'
五、原因
此为Ubuntu18.04安装的libssl-dev为1.1版本,而OpenWrt 15.05.1不支持此版本,需要回退到1.0版本
六、解决方法
使用aptitude软件包管理器sudo apt-get install aptitude
卸载之前的版本sudo aptitude remove libssl-dev
安装1.0版本apt-get install libssl1.0.0
• 由 Leung 写于 2020 年 6 月 24 日