5372|1

5979

帖子

8

TA的资源

版主

楼主
 

【转载】OPENWRT环境下使用SDK编译应用程序 [复制链接]

根据上节所述的OpenWrt编译环境搭建成功后,接下来本节介绍怎样编译一个最简单的应用程序。
一、Helloworld.ipk生成
编译环境结束后,所有的结果都会放在编译根目录下的./bin/yourtarget/.。小编所编译的产物都放在openwrt /bin/g2/(openwrt为源码所在目录下)。
会在openwrt /bin/g2下生产SDK文件:
OpenWrt-SDK-g2-for-Linux-i686-gcc-4.5.1+l_uClibc-0.9.32.tar.bz2
对SDK进行解压,命令如下

1


tar xvfj [color=rgb(0, 45, 122) !important]OpenWrt[color=rgb(0, 111, 224) !important]-[color=rgb(0, 45, 122) !important]SDK[color=rgb(0, 111, 224) !important]-[color=rgb(0, 45, 122) !important]g2[color=rgb(0, 111, 224) !important]-[color=rgb(128, 0, 128) !important]for[color=rgb(0, 111, 224) !important]-[color=rgb(0, 45, 122) !important]Linux[color=rgb(0, 111, 224) !important]-[color=rgb(0, 45, 122) !important]i686[color=rgb(0, 111, 224) !important]-[color=rgb(0, 45, 122) !important]gcc[color=rgb(0, 111, 224) !important]-[color=rgb(206, 0, 0) !important]4.5.1[color=rgb(0, 111, 224) !important]+[color=rgb(0, 45, 122) !important]l_uClibc[color=rgb(0, 111, 224) !important]-[color=rgb(206, 0, 0) !important]0.9.32.tar.bz2



解压之后就是OpenWrt-SDK-ar71xx-for-linux-i686-gcc-4.6-linaro_uClibc-0.9.33.2。
在OpenWrt-SDK-g2-for-Linux-i686-gcc-4.5.1+l_uClibc-0.9.32/package目录下新建helloworld目录。
在helloworld目录下新建Makefile文件(该文件是用来给Openwrt读的)和src目录。
Makefile内容如下:(小编将代码从window系统下粘贴到ubuntu系统下,可能会出现格式类的不支持问题,因此最好手动输入,Makefile文件中,以#号开头的注释不用输入,不嫌麻烦的话可以全部输入哈)

1

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]2

3

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]4

5

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]6

7

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]8

9

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]10

11

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]12

13

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]14

15

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]16

17

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]18

19

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]20

21

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]22

23

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]24

25

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]26

27

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]28

29

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]30

31

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]32

33

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]34

35

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]36

37

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]38

39

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]40

41

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]42

43

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]44

45

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]46

47

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]48

49

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]50

51

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]52

53

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]54

55

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]56

57

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]58

59

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]60

61

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]62

63

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]64

65

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]66

67

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]68

69

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]70

71

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]72

73

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]74

75

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]76

77

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]78

79


[color=rgb(184, 92, 0) !important]##############################################
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# OpenWrt Makefile for helloworld program

[color=rgb(184, 92, 0) !important]#
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]#
[color=rgb(184, 92, 0) !important]# Most of the variables used here are defined in
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# the include directives below. We just need to
[color=rgb(184, 92, 0) !important]# specify a basic description of the package,
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# where to build our program, where to find
[color=rgb(184, 92, 0) !important]# the source files, and where to install the
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# compiled program on the router.
[color=rgb(184, 92, 0) !important]#
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# Be very careful of spacing in this file.
[color=rgb(184, 92, 0) !important]# Indents should be tabs, not spaces, and
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# there should be no trailing whitespace in
[color=rgb(184, 92, 0) !important]# lines that are not commented.
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]#
[color=rgb(184, 92, 0) !important]##############################################

include[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]TOPDIR[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/[color=rgb(0, 45, 122) !important]rules[color=rgb(51, 51, 51) !important].[color=rgb(0, 45, 122) !important]mk

[color=rgb(184, 92, 0) !important]# Name and release number of this package
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 45, 122) !important]PKG_NAME[color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important]=[color=rgb(0, 78, 208) !important]helloworld
[color=rgb(0, 45, 122) !important]PKG_RELEASE[color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important]=[color=rgb(206, 0, 0) !important]1

[color=rgb(184, 92, 0) !important]# This specifies the directory where we're going to build the program.
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# The root build directory, $(BUILD_DIR), is by default the build_mipsel
[color=rgb(184, 92, 0) !important]# directory in your OpenWrt SDK directory
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 45, 122) !important]PKG_BUILD_DIR[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important]=[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]BUILD_DIR[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/[color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]PKG_NAME[color=rgb(51, 51, 51) !important])

[backcolor=rgb(247, 247, 247) !important]include[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]INCLUDE_DIR[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/[color=rgb(128, 0, 128) !important]package[color=rgb(51, 51, 51) !important].[color=rgb(0, 45, 122) !important]mk

[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# Specify package information for this program.
[color=rgb(184, 92, 0) !important]# The variables defined here should be self explanatory.
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# If you are running Kamikaze, delete the DESCRIPTION
[color=rgb(184, 92, 0) !important]# variable below and uncomment the Kamikaze define
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# directive for the description below
[color=rgb(0, 78, 208) !important]define [color=rgb(128, 0, 128) !important]Package[color=rgb(0, 111, 224) !important]/[color=rgb(0, 78, 208) !important]helloworld
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 78, 208) !important]    [color=rgb(128, 0, 128) !important]SECTION[color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important]=[color=rgb(0, 78, 208) !important]utils
[color=rgb(0, 78, 208) !important]    [color=rgb(0, 45, 122) !important]CATEGORY[color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important]=[color=rgb(0, 78, 208) !important]Utilities
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 78, 208) !important]    [color=rgb(0, 45, 122) !important]TITLE[color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important]=[color=rgb(0, 45, 122) !important]Helloworld[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]--[color=rgb(0, 111, 224) !important] prints[color=rgb(0, 111, 224) !important] a[color=rgb(0, 111, 224) !important] [color=rgb(0, 78, 208) !important]snarky [color=rgb(0, 78, 208) !important]message
[color=rgb(0, 45, 122) !important]endef

[color=rgb(184, 92, 0) !important]# Uncomment portion below for Kamikaze and delete DESCRIPTION variable above
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 78, 208) !important]define [color=rgb(128, 0, 128) !important]Package[color=rgb(0, 111, 224) !important]/[color=rgb(0, 45, 122) !important]helloworld[color=rgb(0, 111, 224) !important]/[color=rgb(0, 78, 208) !important]description
[color=rgb(0, 78, 208) !important]        [color=rgb(128, 0, 128) !important]If[color=rgb(0, 111, 224) !important] [color=rgb(0, 78, 208) !important]you can[color=rgb(0, 128, 0) !important]'t figure out what this program does, you'[color=rgb(0, 78, 208) !important]re [color=rgb(0, 78, 208) !important]probably
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 78, 208) !important]        [color=rgb(0, 45, 122) !important]brain[color=rgb(0, 111, 224) !important]-[color=rgb(0, 78, 208) !important]dead [color=rgb(128, 0, 128) !important]and[color=rgb(0, 111, 224) !important] [color=rgb(0, 78, 208) !important]need [color=rgb(0, 78, 208) !important]immediate [color=rgb(0, 78, 208) !important]medical [color=rgb(0, 45, 122) !important]attention[color=rgb(51, 51, 51) !important].
[color=rgb(0, 45, 122) !important]endef

[color=rgb(184, 92, 0) !important]# Specify what needs to be done to prepare for building the package.
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# In our case, we need to copy the source files to the build directory.
[color=rgb(184, 92, 0) !important]# This is NOT the default.  The default uses the PKG_SOURCE_URL and the
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# PKG_SOURCE which is not defined here to download the source from the web.
[color=rgb(184, 92, 0) !important]# In order to just build a simple program that we have just written, it is
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# much easier to do it this way.
[color=rgb(0, 78, 208) !important]define [color=rgb(0, 45, 122) !important]Build[color=rgb(0, 111, 224) !important]/[color=rgb(0, 78, 208) !important]Prepare
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 78, 208) !important]    [color=rgb(0, 45, 122) !important]mkdir[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]-p[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]PKG_BUILD_DIR[color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]CP[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important]/[color=rgb(0, 45, 122) !important]src[color=rgb(0, 111, 224) !important]/[color=rgb(0, 111, 224) !important]*[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]PKG_BUILD_DIR[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 45, 122) !important]endef

[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# We do not need to define Build/Configure or Build/Compile directives
[color=rgb(184, 92, 0) !important]# The defaults are appropriate for compiling a simple program such as this one

[color=rgb(184, 92, 0) !important]# Specify where and how to install the program. Since we only have one file,
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# the helloworld executable, install it by copying it to the /bin directory on
[color=rgb(184, 92, 0) !important]# the router. The $(1) variable represents the root directory on the router running
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# OpenWrt. The $(INSTALL_DIR) variable contains a command to prepare the install
[color=rgb(184, 92, 0) !important]# directory if it does not already exist.  Likewise $(INSTALL_BIN) contains the
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# command to copy the binary file from its current location (in our case the build
[color=rgb(184, 92, 0) !important]# directory) to the install directory.
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 78, 208) !important]define [color=rgb(128, 0, 128) !important]Package[color=rgb(0, 111, 224) !important]/[color=rgb(0, 45, 122) !important]helloworld[color=rgb(0, 111, 224) !important]/install
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]INSTALL_DIR[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(206, 0, 0) !important]1[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/bin
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]INSTALL_BIN[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]PKG_BUILD_DIR[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/helloworld[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(206, 0, 0) !important]1[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important]/[color=rgb(0, 45, 122) !important]bin[color=rgb(0, 111, 224) !important]/
[color=rgb(0, 45, 122) !important]endef

[color=rgb(184, 92, 0) !important]# This line executes the necessary commands to compile our program.
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# The above define directives specify all the information needed, but this
[color=rgb(184, 92, 0) !important]# line calls BuildPackage which in turn actually uses this information to
[backcolor=rgb(247, 247, 247) !important][color=rgb(184, 92, 0) !important]# build a package.
[color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important](eval[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 78, 208) !important]call [color=rgb(0, 45, 122) !important]BuildPackage[color=rgb(51, 51, 51) !important],[color=rgb(0, 45, 122) !important]helloworld[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important])



在src目录下新建helloworld.c文件和Makefile文件(该文件是用来编译helloworld.c的)。
Helloworld.c文件如下:

1

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]2

3

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]4

5

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]6


[color=rgb(184, 92, 0) !important]#include
[backcolor=rgb(247, 247, 247) !important][color=rgb(128, 0, 128) !important]int[color=rgb(0, 111, 224) !important]
[color=rgb(0, 78, 208) !important]main[color=rgb(51, 51, 51) !important]([color=rgb(128, 0, 128) !important]void[color=rgb(51, 51, 51) !important])
[color=rgb(51, 51, 51) !important]{
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 111, 224) !important]    [color=rgb(128, 0, 128) !important]printf[color=rgb(51, 51, 51) !important]([color=rgb(0, 128, 0) !important]"I love Weedpi!\n"[color=rgb(51, 51, 51) !important])[color=rgb(51, 51, 51) !important];
[color=rgb(0, 111, 224) !important]    [color=rgb(128, 0, 128) !important]return[color=rgb(0, 111, 224) !important] [color=rgb(206, 0, 0) !important]0[color=rgb(51, 51, 51) !important];
[backcolor=rgb(247, 247, 247) !important][color=rgb(51, 51, 51) !important]}



Makefile文件内容如下:

1

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]2

3

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]4

5

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]6

7

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]8

9

[color=rgb(49, 124, 197) !important][backcolor=rgb(200, 225, 250) !important]10

11


[color=rgb(184, 92, 0) !important]# build helloworld executable when user executes "make"

[color=rgb(0, 45, 122) !important]helloworld[color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]helloworld[color=rgb(51, 51, 51) !important].o
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]CC[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]LDFLAGS[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]helloworld[color=rgb(51, 51, 51) !important].[color=rgb(0, 45, 122) !important]o[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]-o[color=rgb(0, 111, 224) !important] [color=rgb(0, 78, 208) !important]helloworld

[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 45, 122) !important]helloworld[color=rgb(51, 51, 51) !important].[color=rgb(0, 45, 122) !important]o[color=rgb(0, 111, 224) !important]:[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]helloworld[color=rgb(51, 51, 51) !important].c
[color=rgb(0, 111, 224) !important]    [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]CC[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]$[color=rgb(51, 51, 51) !important]([color=rgb(0, 45, 122) !important]CFLAGS[color=rgb(51, 51, 51) !important])[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]-c[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]helloworld[color=rgb(51, 51, 51) !important].[color=rgb(0, 45, 122) !important]c

[color=rgb(184, 92, 0) !important]# remove object files and executable when user executes "make clean"
[backcolor=rgb(247, 247, 247) !important][color=rgb(0, 45, 122) !important]clean[color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important]    [color=rgb(0, 45, 122) !important]rm[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]*[color=rgb(51, 51, 51) !important].o[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]helloworld



在OpenWrt-SDK-g2-for-Linux-i686-gcc-4.5.1+l_uClibc-0.9.32目录下执行编译,命令为:make V=s。

1


make[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]V[color=rgb(0, 111, 224) !important]=[color=rgb(0, 45, 122) !important]s




成功之后会在:
OpenWrt-SDK-g2-for-Linux-i686-gcc-4.5.1+l_uClibc-0.9.32/bin/g2/packages/
下生产helloworld_1_g2.ipk
二、Helloworld.ipk上传并运行
1) 建立TFTP服务器
在window系统下,选择打开软件cisco tftp server(百度一下吧,很多的,本文就不提供了),进入查看->选项。
设定TFTP服务器的根目录为获取的helloworld_1_g2.ipk文件目录下(最好放在cisco tftp server文件目录里)。

2) 安装ipk到路由器
执行命令:

1


[color=rgb(0, 45, 122) !important]tftp[color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]-[color=rgb(0, 78, 208) !important]gr [color=rgb(0, 45, 122) !important]helloworld_1_g2[color=rgb(51, 51, 51) !important].[color=rgb(0, 78, 208) !important]ipk [color=rgb(0, 45, 122) !important]TftpserverIP



(例如:tftp -gr helloworld_1_g2.ipk 192.168.1.5)。
会在cisco tftp server中看到发送情况,如下图,也可以在SSH端通过ls来查看。
发送完毕后,安装ipk:

1


[color=rgb(0, 78, 208) !important]opkg [color=rgb(0, 78, 208) !important]install [color=rgb(0, 45, 122) !important]helloworld_1_g2[color=rgb(51, 51, 51) !important].[color=rgb(0, 45, 122) !important]ipk




会生成/bin/helloworld,如下图。通过命令:

1


[color=rgb(51, 51, 51) !important].[color=rgb(0, 111, 224) !important]/[color=rgb(0, 45, 122) !important]helloworld



可运行helloworld程序,并出现打印信息。



本文固定链接:http://www.routerblocks.org/?p=870


此帖出自无线连接论坛

最新回复

首先感谢楼主分享,但给出的代码好像掺入了一些奇怪的东西?  详情 回复 发表于 2014-10-3 23:22
点赞 关注
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 

回复
举报

436

帖子

1

TA的资源

一粒金砂(高级)

沙发
 
首先感谢楼主分享,但给出的代码好像掺入了一些奇怪的东西?
此帖出自无线连接论坛
个人签名君应有语,渺万里层云,千山暮雪,知向谁边?
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表