Makefile Kconfig 关联

q03043123 2009-07-01 04:25:38
简单的HelloWord.c程序
#config
config HELLOWORD
bool"helloword"
depends on HelloWord.c
help
.........

#Makefile

obj-$(CONFIG_HELLOWORD)+=HelloWord.c



在makefile中 还要写gcc HelloWord.c 命令吗?

obj-$(CONFIG_HELLOWORD)+=HelloWord.c 怎么解释?“+=”是什么意思?
怎么在makefile中指定头文件的路径?
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
crifan 2009-08-04
  • 打赏
  • 举报
回复
估计LZ是想要把自己驱动,加到config里面去
网上kconfig的介绍很多的。自己多百google度找找看看。

#config
config HELLOWORD
bool"helloword"
depends on HelloWord.c
help
.........

#Makefile

obj-$(CONFIG_HELLOWORD)+=HelloWord.c

你这上面中的,
depends on意思理解错了,
depends on是表示,此配置选项,依赖于其他某个配置选项,
一般也就是此配置选项的上一层的配置选项,如果上一层没选中,那么你这一层的配置选项就不会出现


“在makefile中 还要写gcc HelloWord.c 命令吗? ”
不需要。

“obj-$(CONFIG_HELLOWORD)+=HelloWord.c 怎么解释?“+=”是什么意思? ”
makefile中,你应该这么写
obj-$(CONFIG_HELLOWORD)+=HelloWord.o

obj-$(CONFIG_HELLOWORD)
中的$(CONFIG_HELLOWORD)是根据你的config里面的配置,有三种值:
只有空格表示没选中/*表示选中,编译到内核里去,也叫built-in/m表示模块
对应的就是
obj-n: 没选中,所以就不会去编译你的HelloWord.c
obj-y:选中,表示编译你的HelloWord.c到内核里面去
obj-m :编译你的HelloWord.c成模块,你可以在需要的时候自己动态加载。编译出来的文件是HelloWord.ko

+=的意思,如果你学过C语言,和里面的+=意思类似,你就很清楚了。
简单解释就是+=表示,将你要编译的HelloWord.o,
根据obj-n/y/m 是不加入编译,还是加入编译到内核,还是编译成模块。


“怎么在makefile中指定头文件的路径? ”
不需要
makefile会自动搜索和c文件同名的.h头文件。
hhyh612 2009-07-02
  • 打赏
  • 举报
回复
Kconfig 是用来编译kernel的把?
libaizhang 2009-07-02
  • 打赏
  • 举报
回复
不需要再写gcc HelloWord.c

主Makefile会检测到你obj-y 或obj-m上的所有文件名,然后统一编译。
你唯一还需要做的就是在.config里把CONFIG_HELLOWORD选上.
q03043123 2009-07-02
  • 打赏
  • 举报
回复
练习吗
ShowMan 2009-07-02
  • 打赏
  • 举报
回复
楼主在干嘛, 做个helloword的驱动???
ShowMan 2009-07-02
  • 打赏
  • 举报
回复
不要了,按照kernel的结构这样就算加好了。
obj-$(CONFIG_HELLOWORD)+=HelloWord.c 就是把你要编译的文件加到kernel的编译列表里去。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧