前言SDK软件开发工具包(SoftwareDevelopmentKit)是为软件工程师在特定平台上开发应用程序而提供的一系列软件开发工具的集合。嵌入式Linux发行版LEDE提供的SDK环境与发行版环境兼容。SDK环境下的程序开发不需要像发行版那样编译整个linux系统,只需要指定具体开发的功能包进行交叉编译即可。本文介绍了在LEDE提供的SDK环境中编译应用程序的方法,以及如何在系统中应用生成的可执行文件和ipk包。SDK环境生成在LEDE源码目录下执行makemenuconfig命令进入LEDE配置界面,选择[*]BuildtheLEDESDK进行编译,然后在/source-17.01.4/bin/targets/下生成SDK软件压缩包ramips/mt7628包lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.Linux-i686.tar.xz。解压软件包lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.Linux-i686.tar.xz得到lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.Linux-i686目录,目录结构如下图所示。目录结构与LEDE目录结构基本相同。/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl-1.1.16目录是编译工具链的存放位置。注:在LEDE配置界面选择PackagetheLEDEbasedToolchain选项进行编译,会在bin/targets/下生成工具链软件lede-toolchain-ramips-mt7628_gcc-5.4.0_musl-1.1.16.Linux-i686ramips/mt7628路径.tar.bz2,提供给eclipse等第三方平台。程序创建与编译1)在lede-sdk-ramips-mt7628_gcc-5.4.0_musl-1.1.16.Linux-i686/package目录下新建一个新开发的功能程序目录yxpr_ipk2)在yxpr_ipk目录下,Makefile文件内容如下。关键内容中PKG_NAME:=yxpr_ipk指定功能程序的名称,definePackage/yxpr_ipk中的SECTION指定内核配置界面上功能模块的父目录,TITLE指定功能模块在内核上的标题描述配置界面包括$(TOPDIR)/rules.mkPKG_NAME:=yxpr_ipkPKG_RELEASE:=1PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)include$(INCLUDE_DIR)/package.mkdefinePackage/yxpr_ipkSECTION:=utilsCATEGORY:=UtilitiesTITLE:=H-打印一条尖刻的消息endefdefineBuild/Preparemkdir-p$(PKG_BUILD_DIR)$(CP)./src/*$(PKG_BUILD_DIR)/endefdefinePackage/yxpr_ipk/install$(INSTALL_DIR)$(1)/bin$(INSTALL_BIN)$(PKG_BUILD_DIR)/yxpr_ipk$(1)/bin/endef$(eval$(callBuildPackage,yxpr_ipk))3)在src目录下新建程序文件yxpr_ipk.c和Makefile#include
