4

我正在尝试为 OpenWrt 创建一个 libxerces 包。按照该站点http://wiki.openwrt.org/doc/devel/packages的说明,我在包目录中创建了一个名为 libxerces-c 的文件夹和一个简单的 Makefile 以在 make menuconfig 上列出该包,但它不是正在发生。

Makefile 定义如下:

#
# Copyright (C) 2006-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

# Name and release number of this package
PKG_NAME:=xerces-c
PKG_VERSION:=3.1.1
PKG_RELEASE:=1

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://apache.mirror.pop-sc.rnp.br/apache//xerces/c/3/sources/
PKG_CAT:=zcat

include $(INCLUDE_DIR)/package.mk

# Specify package information for this program. 
# The variables defined here should be self explanatory.
define Package/libxerces
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=Validating XML parser written in a portable subset of C++.
  URL:=http://xerces.apache.org/
endef

define Package/libxerces/description
  Xerces-C++ is a validating XML parser written in a portable subset of
  C++.  Xerces-C++ makes it easy to give your application the ability
  to read and write XML data. A shared library is provided for parsing,
  generating, manipulating, and validating XML documents. Xerces-C++ is
  faithful to the XML 1.0 recommendation and associated standards (DOM
  1.0, DOM 2.0, SAX 1.0, SAX 2.0, Namespaces, XML Schema Part 1 and
  Part 2).  It also provides experimental implementations of XML 1.1
  and DOM Level 3.0.  The parser provides high performance, modularity,
  and scalability.
endef     

CONFIGURE_ARGS+= --host=mips-openwrt-linux

define Build/Configure
  $(call Build/Configure/Default)    
endef

define Build/Compile
  $(call Build/Compile/Default)
endef

define Package/libxerces/install
endef

$(eval $(call BuildPackage,libxerces))

我已经尝试执行安装脚本

./scripts/feeds install libxerces-c

但是什么也没发生。执行make menuconfig后还是看不到包。

4

3 回答 3

0

可能您还没有在寻找它,但这里是答案。为了使您的包出现在 menuconfig TUI 中,您需要在定义包子句中的 Makefile 中添加以下选项:

MENU:1

因此,您的 Makefile 的这一部分将如下所示:

define Package/libxerces
SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=Validating XML parser written in a portable subset of C++.
  URL:=http://xerces.apache.org/
endef
于 2014-11-19T18:48:11.583 回答
0

你需要

  1. 将带有包的提要feeds.conf.default添加到您的或创建一个feeds.conf

  2. 然后./scripts/feeds update -a(更新所有提要...您可以只设置提要的名称而不是使用-a

  3. 然后./scripts/feeds install foobar

[...]

libxerces-c...您显然在调用软件包时调用了 install libxerces

于 2013-03-05T20:32:37.670 回答
0

你能做一个make menuconfig,看看是否显示任何关于你的包'libxerces'的错误消息。我对自定义包的设置类似于:

mkdir package/custom
mkdir package/custom/
ln -s /path/to/package/libxerces/ package/custom/

如果您的 makefile 正确,则 Libraries->libxerces 应该出现在 menuconfig 中,如果不是,则应该在 make/make menuconfig 上打印错误消息。你也可以做make package/libxerces/compile等。注意:你的包名是 libxerces 而不是 libxerces-c。

于 2015-08-27T06:43:54.057 回答