OpenWRT的包依赖 package DEPEND

2024-02-05 16:38
文章标签 依赖 openwrt package depend

本文主要是介绍OpenWRT的包依赖 package DEPEND,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenWRT平台的package管理有自己的Makefile,不同于gcc的Makefile,
这个Makefile是作为OpenWRT强大的package管理的关键组件。
要想往OpenWRT添加自己的package,就得按照它的方式去写个pack依赖。
有了这个,target的pack运行时依赖的所有标准、第三方、自己的组件都可以在编译时一并解决依赖问题了,
而不是等到下载到板子上才发现缺少库。

举个栗子,一个常见的openwrt package Makefile如下:

define Package/mypack/defaultSECTION:=netCATEGORY:=NetworkDEPENDS:=+libpthreadTITLE:= my own package for network utility
endef

最常见的形式就是 

DEPENDS:=+libpread
表示一旦你选中mypack,那么libpthread也就会同时被后台默认选中,推荐。

DEPENDS:=libpread
意味着因为依赖关系,只有在先选中libpthread后,才可以选择mypack。

DEPENDS:=+arpd:libpthread
这是一个双重依赖,只有arpd选中后,才可以选择libpthread,这样看有些拗口。
但是在前面取个反就很实用了,比如这个定义
DEPENDS:=+!BUSYBOX_CONFIG_arp:net-tools-arp
表示若busybox的arp没有包含(busybox的工具都是阉割版),那么就选中arp(标准版)。

DEPENDS:=@libpread
表示除非你先选中libpread,否则休想在menuconfig看到mypack。不推荐

DEPENDS:=+@libpthread
多个+呢,和+libpthread类似,会自动选择libpthread。
但是,有一点这种方式在安装mypack到target文件系统时,不会去检查依赖性的,若libpthread没有被安装它是检测不出来的,

只能在target上运行时才能发现 undefined symbol


转载于:http://blog.chinaunix.net/uid-27057175-id-5011775.html


这篇关于OpenWRT的包依赖 package DEPEND的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681534

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

PHP7扩展开发之依赖其他扩展

前言 有的时候,我们的扩展要依赖其他扩展。比如,我们PHP的mysqli扩展就依赖mysqlnd扩展。这中情况下,我们怎么使用其他扩展呢?这个就是本文讲述的内容。 我们新建立一个扩展,名字叫 demo_dep , 依赖之前的say扩展。 在demo_dep扩展中,我们实现demo_say方法。这个方法调用say扩展的say方法。 代码 基础代码 确保say扩展的头文件正确安装到了php

Go 依赖注入库dig

简介 今天我们来介绍 Go 语言的一个依赖注入(DI)库——dig。dig 是 uber 开源的库。Java 依赖注入的库有很多,相信即使不是做 Java 开发的童鞋也听过大名鼎鼎的 Spring。相比庞大的 Spring,dig 很小巧,实现和使用都比较简洁。 快速使用 第三方库需要先安装,由于我们的示例中使用了前面介绍的go-ini和go-flags,这两个库也需要安装: $ go g

ORACLE语法-包(package)、存储过程(procedure)、游标(cursor)以及java对Result结果集的处理

陈科肇 示例: 包规范 CREATE OR REPLACE PACKAGE PACK_WMS_YX IS-- Author : CKZ-- Created : 2015/8/28 9:52:29-- Purpose : 同步数据-- Public type declarations,游标 退休订单TYPE retCursor IS REF CURSOR;-- RETURN vi_co_co

UserWarning: mkl-service package failed to import

安装完成anaconda,并设置了两个环境变量  之后再控制台运行python环境,输入import numpy as np,提示错误 D:\InstallFolder\Anaconda3\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore

Android 项目依赖

先上个简单的压压惊: 导入三方项目供自己使用: 由于Google重AndroidStudio  轻 Eclipse ,致使现在很多 开元的项目 都是AndroidStudio 版本了;那么如何把别人的项目导入到AndroidStudio 用于自己使用参考呢? 很简单:下载好别人的项目后 ;首先改下 配置信息; 作为配置参数的参考:首先大家应该有一个自己的在AndroidStudio 上

六、Maven依赖管理、依赖传递和依赖冲突

1.Maven依赖管理 Maven 依赖管理是 Maven 软件中最重要的功能之一。Maven 的依赖管理能够帮助开发人员自动解决软件包依赖问题,使得开发人员能够轻松地将其他开发人员开发的模块或第三方框架集成到自己的应用程序或模块中,避免出现版本冲突和依赖缺失等问题。 我们通过定义 POM 文件,Maven 能够自动解析项目的依赖关系,并通过 Maven 仓库自动下载和管理依赖,从而避免了手动

Spring是如何解决循环依赖?

现象解释: 在Spring框架中,循环依赖(Circular Dependency)是指两个或多个Bean之间相互依赖,形成了一个循环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。Spring通过多种机制解决循环依赖问题,具体来说,主要有以下几种方式: 1.三级缓存机制 Spring容器在实例化Bean时使用了三级缓存来解决循环依赖,主要涉及三个缓存结构: 一级