Вы должны использовать SDK
.Вы можете выполнить следующие действия:
1) Загрузить OpenWrt-SDK
2) В папке OpenWrt-SDK
запустить ./scripts/feeds/update -a && ./scripts/feeds/install -a
3) Создать папку с именем helloworld
в пути OpenWrt-SDK/feeds/packages/utils/
4) Внутри этой папки создайте файл с именем Makefile
и новую папку с именем src
.
5) Внутри папки src
поместитеhelloworld.cpp
и Makefile
, который позволяет скомпилировать его.
6) Ваш Makefile
в папке OpenWrt-SDK/scripts/feeds/packages/utils/
должен выглядеть следующим образом:
include $(TOPDIR)/rules.mk
# Name and release number of this package
PKG_NAME:=helloworld
PKG_VERSION:=1.0
PKG_RELEASE:=0
# This specifies the directory where we're going to build the program.
# The root build directory, $(BUILD_DIR), is by default the build_mipsel
# directory in your OpenWrt SDK directory
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/uclibc++.mk
include $(INCLUDE_DIR)/package.mk
# Specify package information for this program.
# The variables defined here should be self explanatory.
define Package/helloworld
SECTION:=utils
CATEGORY:=Utilities
TITLE:=helloworld exampke
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
TARGET_CFLAGS += \
-I$(STAGING_DIR)/usr/include \
-D_GNU_SOURCE \
-ggdb3
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)"
define Build/Compile
$(call Build/Compile/Default, \
CCOPTS="$(TARGET_CFLAGS)" \
INCLUDE="$(EXTRA_CFLAGS)" \
LDFLAGS="$(EXTRA_LDFLAGS)" \
)
endef
define Package/helloworld/install
$(INSTALL_DIR) $(1)/bin
$(CP) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/bin/
endef
# This line executes the necessary commands to compile our program.
# The above define directives specify all the information needed, but this
# line calls BuildPackage which in turn actually uses this information to
# build a package.
$(eval $(call BuildPackage,helloworld))
7) Впапка OpenWrt-SDK
запускается ./scripts/feeds update -i && ./scripts/feeds install helloworld
8) В этой же папке запускается make package/helloworld/compile
9) Вы можете найти ваш пакет .ipk
в OpenWrt-SDK/bin/ar71xx/packages/packages/
PS: Возможно, вам придется установить ccache
, набрав (Ubuntu) sudo apt-get install ccache
.Вы не должны вводить свои make-файлы, используя пробелы, вы должны использовать табулятор.