首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openwrt SDK: Makefile权限被拒绝

Openwrt SDK: Makefile权限被拒绝
EN

Stack Overflow用户
提问于 2016-01-25 09:40:17
回答 1查看 997关注 0票数 0

我正在用OpenWRT SDK编译一个用户包。src文件位于OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/package/adapter/src.中。

在/适配器/src目录中,我还有Makefile:

代码语言:javascript
复制
adapter: adapter.o
    $(CC) $(LDFLAGS) adapter.o -o adapter
adapter.o: adapter.c
    $(CC) $(CFLAGS) -c adapter.c
clean:
    rm *.o adapter

运行本地make /适配器/src目录可以正常工作。

然后,我将以下Makefile添加到/adapter目录中:

代码语言:javascript
复制
include $(TOPDIR)/rules.mk
PKG_NAME:=adapter
PKG_RELEASE=1

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

include $(INCLUDE_DIR)/package.mk

define Package/adapter
    SECTION:=utils
    CATEGORY:=Utilities
    TITLE:=adapter --prints a dummy message
endef

define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(cp) ./src/* $(PKG_BUILD_DIR)
endef

define Build/Compile
    $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS)
endef

define Package/adapter/install
    $(INSTALL_DIR) $(1)/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/adapter $(1)/bin
endef

$(eval $(call BuildPackage,adapter))

当我在顶部目录中运行make时,我得到了以下错误:

代码语言:javascript
复制
zy@zy-OptiPlex-745:~/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686$ make V=99
Collecting package info: done
#
# configuration written to .config
#
make[1]: Entering directory `/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686'
make[2]: Entering directory `/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686'
make[3]: Entering directory `/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/package/adapter'
mkdir -p /home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/build_dir/target-mips_34kc_musl-1.1.11/adapter
./src/* /home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/build_dir/target-mips_34kc_musl-1.1.11/adapter
bash: ./src/Makefile: Permission denied
make[3]: *** [/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/build_dir/target-mips_34kc_musl-1.1.11/adapter/.prepared_e0632caf1f416a667d5957a7f385ceb6] Error 126
make[3]: Leaving directory `/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/package/adapter'
make[2]: *** [package/adapter/compile] Error 2
make[2]: Leaving directory `/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686'
make[1]: *** [/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686/staging_dir/target-mips_34kc_musl-1.1.11/stamp/.package_compile] Error 2
make[1]: Leaving directory `/home/zy/openwrt/OpenWrt-SDK-ar71xx-generic_gcc-5.2.0_musl-1.1.11.Linux-i686'
make: *** [world] Error 2

以root用户身份运行make会产生相同的错误。有人能告诉我吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-26 07:19:14

根据您的信息,我认为这个错误可能是由/adapter目录中的Makefile引起的。

代码语言:javascript
复制
define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(cp) ./src/* $(PKG_BUILD_DIR)
endef

应该修改如下:

代码语言:javascript
复制
define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(CP) ./src/* $(PKG_BUILD_DIR)
endef

$(CP)是一个变量,在rules.mk CP:=cp -fpR中定义,因此您可以使用它复制某些内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34989280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档