2671|6

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Makefile Kconfig 关联 [复制链接]

简单的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中指定头文件的路径?

最新回复

估计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头文件。  详情 回复 发表于 2009-8-4 22:09
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
Kconfig 是用来编译kernel的把?
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不要了,按照kernel的结构这样就算加好了。
obj-$(CONFIG_HELLOWORD)+=HelloWord.c 就是把你要编译的文件加到kernel的编译列表里去。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

4
 
楼主在干嘛, 做个helloword的驱动???
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
练习吗
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
不需要再写gcc HelloWord.c

主Makefile会检测到你obj-y 或obj-m上的所有文件名,然后统一编译。
你唯一还需要做的就是在.config里把CONFIG_HELLOWORD选上.
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
估计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头文件。
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表