修复mac 下 make menuconfig 的bug以及自定义make menuconfig界面

本文介绍了如何解决在Mac系统下使用`make menuconfig`时遇到的'ld: symbol(s) not found for architecture x86_64'错误,以及如何自定义`make menuconfig`的图形界面。解决方法涉及到修改`check-lxdialog.sh`脚本,添加对库文件路径的检查。同时,文章提供了一个简单的config文件示例,用于创建定制化的配置界面。
摘要由CSDN通过智能技术生成

韩大卫@吉林师范大学

    2014.12.8 


转载请表明出处

*****************************************

本文目的:

一, 解决在mac 系统里make menuconfig 报错:  lcd: symbol(s) not found for architecture x86_64 的bug

二,  使用mconf, 自定义实现一个make menuconfig的界面


一, 在MAC 系统下使用make menuconfig 调用图形界面做config时,  可能会有如下报错:

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)



一般地, 编译busybox或者uboot或者linux内核等软件包之前,  还是使用图形界面来做配置最为最直观.  实现这一目的自然是执行make menuconfig. 

make menuconfig 实际上就是拿 mconf 这个工具去解析config文件里的描述信息, 进而转换为图形界面, 当然, config 文件有自动定义的语法格式, 详细见本文最下放. 


第一次执行make menuconfig时, 需要先生成 mconf 这个工具, 在预编译 scripts/kconfig/mconf.c 生成scripts/kconfig/mconf.o 之后的连接阶段,   

需要ldconfig参数给出所需要连接的库的位置,  所说的库为后缀为.a 或.so 或 .dylib 的ncursesw ncurses curses库, 

生成ldflags的的脚本为: scripts/kconfig/lxdialog/check-lxdialog.sh


上面报错的原因就是,   MAC 系统下  ncursesw ncurses curses 这些库文件的位置不能通过 check-lxdialog.sh 里给出命令来找到, 所以生成的 ldflags 不对, 进而无法生成mconf. 


该bug的解决办法如下:

以编译 busybox 为例子:


打开 scripts/kconfig/lxdialog/check-lxdialog.sh  文件. 

vi scripts/kconfig/lxdialog/check-lxdialog.sh


将红色部分添加进去即可. 

ldflags()         

{

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值