小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 4936|回复: 0

64位Ubuntu系统编译Openwrt遇到问题小记

[复制链接]
发表于 2016-9-13 16:12:32 | 显示全部楼层 |阅读模式
随手记下,以备忘,同时供其他爱好者参考。
环境:Ubuntu 16.04 64位Linux操作系统
Openwrt版本:Dreambox最新trunk版
报错提示:


Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.
/opt/ARM/mini6410/linux/linux-2.6.38/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed
make[1]: *** [kernel/timeconst.h] Error 255
Makefile:916: recipe for target 'kernel' failed
make: *** [kernel] Error 2

原因:
perl版本升级到了 v5.22.1,该版本将defined(@array)去掉了。可以直接使用数组判断非空。


解决方案:
将 根目录/build_dir/linux-ar71xx_generic/linux-3.3.8/kernel目录下的timeconst.pl文件打开,定位到373行,修改原代码:
  1. @val = @{$canned_values{$hz}};
  2. if (!defined(@val)) {
  3. @val = compute_values($hz);
  4. }
  5. output($hz, @val);
复制代码



为:
  1. @val = @{$canned_values{$hz}};
  2. if (!@val) {
  3. @val = compute_values($hz);
  4. }
  5. output($hz, @val);
复制代码





即将
  1. defined(@val)
复制代码

改为
  1. @val
复制代码

保存,重新编译,通过!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-4-26 17:27 , Processed in 1.082060 second(s), 18 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表