c - OpenWrt Makefile 包含 package.mk 错误
问题描述
我是 OpenWrt 和 Makefiles 的初学者,试图演示创建包的“Helloworld”示例,但在包提要更新步骤,从命令./scripts/feeds update mypackages
我得到这个错误
Updating feed 'mypackages' from '/home/onur/Desktop/OpenWRT/openwrt/mypackages' ...
Create index file './feeds/mypackages.index'
/home/onur/Desktop/OpenWRT/openwrt/feeds/mypackages.tmp/info/.files-packageinfo.mk:1: *** target pattern contains no '%'. Stop.
我src-link mypackages /home/onur/Desktop/OpenWRT/openwrt/mypackages
在我的 feeds.conf 目录中编译了“helloworld”C 程序/openwrt/helloworld
,下面是我的 Makefile:
include $(TOPDIR)/rules.mk
# Name, version and release number
# The name and version of your package are used to define the variable to point to the build directory of your package: $(PKG_BUILD_DIR)
PKG_NAME:=helloworld
PKG_VERSION:=1.0
PKG_RELEASE:=1
# Source settings (i.e. where to find the source codes)
# This is a custom variable, used below
SOURCE_DIR:=/home/onur/Desktop/OpenWRT/openwrt/helloworld
include $(INCLUDE_DIR)/package.mk
# Package definition; instructs on how and where our package will appear in the overall configuration menu ('make menuconfig')
define Package/helloworld
SECTION:=examples
CATEGORY:=Examples
TITLE:=Hello, World!
endef
# Package description; a more verbose description on what our package does
define Package/helloworld/description
A simple "Hello, world!" -application.
endef
# Package preparation instructions; create the build directory and copy the source code.
# The last command is necessary to ensure our preparation instructions remain compatible with the patching system.
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
cp $(SOURCE_DIR)/* $(PKG_BUILD_DIR)
$(Build/Patch)
endef
# Package build instructions; invoke the target-specific compiler to first compile the source file, and then to link the file into the final executable
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CXX="$(TARGET_CROSS)g++"
endef
# Package install instructions; create a directory inside the package to hold our executable, and then copy the executable we built previously into the folder
define Package/helloworld/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/usr/bin
endef
# This command is always the last, it uses the definitions and variables we give above in order to get the job done
$(eval $(call BuildPackage,helloworld))
我知道我在交叉编译部分可能有错误,但我认为这不是我现在遇到的问题。
当我尝试制作这个 Makefile 时,我得到了那个错误。
Makefile:13: /package.mk: No such file or directory
make: *** No rule to make target '/package.mk'. Stop.
我在任何地方都找不到这样的问题。为什么它甚至找不到“package.mk”文件。我的目录结构是这样的,顶级目录是Desktop/OpenWrt/openwrt
,这个 Makefile 在Desktop/OpenWrt/openwrt/mypackage
文件夹中。我在 Ubuntu 20.04
解决方案
我在 OpenWrt 论坛上找到了我的问题的解决方案。这是线程的链接
推荐阅读
- java - android 插页式广告和横幅广告
- javascript - jquery/javascript 监听要关闭的 3rd 方插件覆盖
- meteor - SimpleSchema 不是构造函数
- angular - 如何使用 AES 解密 Angular 中的字符串
- android - Firebase 消息传递:无限的 onLaunch 循环
- user-interface - canvas.create_window 不工作?
- hyperledger-fabric - 两个资产超级账本作曲家之间的一对多关系
- java - Spring @Cacheable 忽略创建代理
- flash - Adobe Flash AS 2.0
- katalon-studio - 对于基于 REACT 构建的网站,我如何处理 katalon studio 中的弹出窗口?