openwrt 程序C++ hello world的ipk软件包
1. 创建文件夹
进入/home/openwrt-hiwooya-master/package路径,建立以下文件结构:
hello/
├── Makefile
└── src
├── main.cpp
└── Makefile
2. 编写main.cpp
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
return 0;
}
3. 编写src/Makefile
注意makefile缩进需要使用tab键。
target:=hello
objects=$(subst .cpp,.o,$(wildcard *.cpp))
CXXFLAGS += -std=gnu++11
$(target):$(objects)
$(CXX) -o $@ $^
clean:
-@rm $(target)
-@rm $(objects)
4. 编写顶层Makefile
include $(TOPDIR)/rules.mk
PKG_NAME:=hello
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/hello
SECTION:=utils
CATEGORY:=Utilites
TITLE:=$(PKG_NAME)
DEPENDS:=+libstdcpp
endef
define Build/Prepare
$(MKDIR) -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)
endef
define Package/hello/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/bin
endef
$(eval $(call BuildPackage,hello))
5. 编译
make menuconfig
选择: Utilites ---><M> hello
//把软件包编译进固件里使用
make V=s
//只编译软件包
make package/hello/compile V=s
6. 安装到开发板
cp /home/openwrt-hiwooya-master/bin/ramips/packages/base/hello_1_ramips_24kec.ipk /mnt/hgfs/Share/
将文件复制到开发板/root/路径,并进入,安装
opkg install hello_1_ramips_24kec.ipk
7. 运行
在开发板中运行程序
hello
8. 现象
屏幕输出 Hello World