Chinaunix首页 | 论坛 | 博客
  • 博客访问: 855915
  • 博文数量: 290
  • 博客积分: 511
  • 博客等级: 下士
  • 技术积分: 1590
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-29 13:14
文章分类

全部博文(290)

文章存档

2018年(28)

2017年(19)

2016年(8)

2015年(1)

2014年(14)

2013年(12)

2012年(22)

2011年(186)

分类: 嵌入式

2018-01-24 16:20:55

原文地址:http://blog.csdn.net/viviwen123/article/details/23931809

以创建一个最简单的hello world为例。

一、在packages中创建hello目录,在hello目录下创建src目录。

二、hello/Makefile内容:


[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. include $(TOPDIR)/rules.mk                                                                                                             
  2.   
  3.    
  4. PKG_NAME:=hello  
  5. PKG_VERSION:=5.0  
  6. PKG_RELEASE:=1  
  7.    
  8. PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)  
  9.    
  10. include $(INCLUDE_DIR)/package.mk  
  11.    
  12. define Package/$(PKG_NAME)    
  13.     SECTION:=utils  
  14.     CATEGORY:=Utilities  
  15.     TITLE:=hello  -- a Test Program  
  16.     MAINTAINER:=wuzhiwen  
  17. endef   
  18.    
  19. define Package/$(PKG_NAME)/description  
  20.     a test program  
  21. endef  
  22.    
  23. define Build/Prepare  
  24.     mkdir -p $(PKG_BUILD_DIR)  
  25.     $(CP) ./src/* $(PKG_BUILD_DIR)/  
  26. endef  
  27.    
  28. define Package/hello/install  
  29.     $(INSTALL_DIR) $(1)/bin  
  30.     $(INSTALL_BIN) $(PKG_BUILD_DIR)/hello $(1)/bin/  
  31. endef  
  32.    
  33. $(eval $(call BuildPackage,hello))  

三、/hello/src/main.c内容:



  1. #include   
  2. #include   
  3.   
  4. int main()  
  5. {  
  6.     printf("Hello World\n");  
  7.     exit (EXIT_SUCCESS);  
  8. }  

四、/hello/src/Makefile内容:



[html] view plaincopy在CODE上查看代码片派生到我的代码片
  1. OBJECTS = hello                                                                                                                          
  2.    
  3. all : $(OBJECTS)  
  4.    
  5. PKG_NAME=docs  
  6.    
  7. hello: main.o  
  8.     $(CC) $(LDFLAGS) $^ -o $@  
  9.    
  10. main.o:main.c  
  11.     $(CC) $(CFLAGS)  -c $<  
  12.    
  13. .PHONY:clean  
  14. clean:  
  15.     @-rm *.o  hello  


五、make menuconfig,在Utilities中找到hello,选择上,保存退出。make V=99,编译固件,刷到路由器上,在终端输入hello,一行Hello World打印出来,说明编译成功了(在/bin目录下能找到hello)。或者make package/hello/compile V=99也可单独编译hello的ipk包。

Makefile的缩进要用tab,不然无法识别。

打包好的hello目录里的文件:

官方wiki:http://wiki.openwrt.org/doc/devel/packages?s[]=pkg&s[]=source或者:http://wiki.openwrt.org/zh-cn/doc/devel/packages



阅读(687) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~