【脚本】更新依赖库pkgconfig文件中的prefix设置

article/2025/10/23 10:30:39

        在本地编译和安装了某个库后,如果其lib目录下存在pkgconfig子目录,则子目录下会存在若干.pc文件,文件中会有prefix的配置(该配置标识当前库的安装路径),当要把该库拷贝到其他机器上时,如果库的路径不一致,需要修改lib/pkgconfig目录下.pc文件的prefix配置。
        以curl库举例说明:
在这里插入图片描述        其中libcurl.pc文件内容为:
在这里插入图片描述
        由于该库是在其他机器上编译的,编译时指定的库路径为:/opt/curl-7.76.1-ubuntu-x64,但是拷贝到本机时,存放的路径为:/home/jaron/curl-7.76.1-ubuntu-x64,因此需要对该文件进行修改,修改后为:
在这里插入图片描述        当有很多.pc文件时,或者路径比较多时,为了方便快速的根据存放路径进行设置,这里写了一个更新pkgconfig文件脚本,注意:需要把该脚本文件放在库所在目录,例如:
在这里插入图片描述
update_pkgconfig.sh

#!/bin/bash# 更新pkgconfig文件的安装目录(支持递归)
update_pkgconfig_prefix()
{filePath=$1prefixDir=$2for file in `ls -a $filePath`doif [ -d ${filePath}/$file ]then# 子目录(递归)if [[ $file != '.' && $file != '..' ]]thenupdate_pkgconfig_prefix ${filePath}/$file $prefixDirfielsefilename=${filePath}/$file# 查找.pc后缀的文件if [ "${filename##*.}"x = "pc"x ]then# 查找设置prefix的所在行号prefix_line=`grep -n "prefix=/" $filename | cut -d ":" -f 1`# 新的设置内容prefix_str="prefix=$prefixDir"# 替换sed -i "$prefix_line c $prefix_str" $filenamefifidone
}workdir=$(cd $(dirname $0); pwd)
update_pkgconfig_prefix $workdir/lib/pkgconfig $workdir

http://chatgpt.dhexx.cn/article/wSj1f1lP.shtml

相关文章

Elasticsearch学习--查询(prefix、wildcard、regexp、fuzzy)

一、前缀搜索 prefix 不计算相关度评分性能较差前缀搜索匹配的是分词后的词项前缀搜索没有缓存前缀搜索尽可能把前缀长度设置的更长 GET product/_search {"query": {"fuzzy": {"name": {"value": "product1"}}} } index…

bgp 使用route-map设置Local perference(本地优先属性)配置与详解

实验目的: 1、掌握基于route-map的本地优先配置方法。 2、使用route-map配置可以定置基于目标网络的本地优先。 实验拓扑: 接口IP配置及bgp基础配置详见 CSDNhttps://mp.csdn.net/mp_blog/creation/editor?spm1001.2014.3001.5352 查看R3与R4的路由…

使用route-map 配置BGP本地优先级

一、实验目的: 1、掌握基于route-map的本地优先配置方法。 2、使用route-map配置可以定置基于目标网络的本地优先级。 二、拓扑图: 三、配置BGP基本的配置: 1、配置各路由器的IP地址和BGP协议。配置完之后,查看一下R3和R4的路由表…

Cisco route-map 源地址路由配置

拓朴图: 案例: 公司内部使用的是一条拨号光纤和一条固定专线光纤,默认是指向拨号光纤出口那个网关出去,现在2网段有两台服务器(WEB、Mail)映射到公网,让外部来访问。 办公区因工作需要&#xf…

bgp route-map应用 配置 学习笔记

先全运行bgp R2 router bgp 2 no auto-summary no synchronzation bgp router-id 2.2.2.2 neighbor 12.1.1.1 remtotes as 10 neighbor 24.1.1.4 remote-as 10r1: router bgp 10 no auto-summary no synchronization bgp router-id 1.1.1.1 neighbor 12.1.1.2…

重分布和Route-MAP

一般在做重分布的时候用route-map较多,当然也可以用分发列表或者前缀列表等等,重分布的时候为了干掉不需要的路由,节约路由器CPU和转发效率可以使用route-map,当然route-map也可以用在其他的场景。 本次实验将ospf与rip重分布来使…

使用Route-Map过滤BGP的路由

实验目的 1、掌握使用Route-Map过滤BGP的路由。 实验拓扑 接口ip配置与bgp基础配置详见: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/125210020查看R3的路由表: R3#show ip route Gateway of last resort is not set1.0.0.0/24 is subnetted…

基于Route-map的路由过滤配置详解

实验目的: 1、掌握基于Route-map的路由过滤配置方法。 2、掌握route-map的命令语法。 实验拓扑: 步骤1:接口ip配置路由协议基础配置重分发详见CSDNhttps://mp.csdn.net/mp_blog/creation/editor/125018583查看R1、R3路由表 R1#show ip route Gateway …

带你轻轻松松了解route-map

一、Route-map概述 1.技术背景 首先来初步认识一下route-map。看上图,我们在R2上,将OSPF路由重发布进RIP,前面已经说过了,在重发布时,可以使用metric关键字来设置路由被重发布进RIP后的metric,这里设置为…

Route-Map个人理解及实验解析

Route-Map:功能性非常强的策略列表,可以用来过滤路由也可以调整路由的属性,自身具备过滤功能。 Route-Map的作用: 1.在重发布的过程中做route-map,重发布过程中可以改变路由的属性;(次要作用) 2.PBR 策略路…

Route map应用策略路由(上)

一、拓扑图: 二、配置说明: 1、根据拓扑图的配置,R4上面跑OSPF,下面走静态路由,R5和R6走默认路由上去。但是要注意的一点是R4上要加一条命令:default-information originate always (向OSPF区域通知一条默认…

CISCO ROUTE-MAP

强制指定源地址的下一跳 match定义匹配条件 match ip address匹配访问列表或前缀列表 match interface匹配下一跳出接口为指定接口之一的路由 match ip next-hop匹配下一跳地址为特定访问列表中被允许的那些路由 match metric匹配具有指定度量值的路由 match route-type匹…

Route-map扩展(讲解+配置)

目录 ——Route-map扩展一般形式: ——案列(1): ——案列(2): ——Route-map扩展一般形式: Ip policy-list aaa per/denyMatch …………(前缀列表/ACL....&#xff…

路由策略route-map

路由策略 route-map 定义 route-map,路由图,用于实现路由策略。 功能 部署 route-map NM permit 10 match ip address 1 2 match ip address 1 match ip address 2 match interface f0/0 f1/0 route-map NM deny 20 match ip address 2 set weight …

route-map的使用介绍

一、关于route-map route map可用于路由的再发布和策略路由,还经常使用在BGP中。策略路由实际上是复杂的静态路由,静态路由是基于数据包的目标地址并转发到指定的下一跳路由器,策略路由还利用和扩展IP ACL链接,以便提供更多功能的…

011mmap进程通信

LINUX学习笔记 mmap 进程通信1. mmap 函数声明及头文件包含1.1 参数说明1.2 mmap 通信demo 2. mmap 注意事项:2.1 mmap 函数的保险使用方法: 3. demo 父子进程间mmap通信4. demo 非血缘关系进程间mmap通信5. mmap通信与fifo和文件通信的差异6. 匿名映射(…

Linux mmap内存映射

一、什么是mmap mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系,函数原型如下 void *mmap(void *addr, size_t length, int prot, int flags,…

Linux下mmap

目录 一.mmap简介 二.为什么需要使用mmap 三.mmap的使用 四.mmap原理 一.mmap简介 什么是mmap了?从名字上来看是memory map也就是地址映射,是一种内存映射文件的方法。mmap是一个可以将一个文件或者其它对象映射到进程的地址空间实现磁盘的地址和进程虚…

Android 进程间通信机制(二) mmap 原理

一. 前言 Binder中一次拷贝的实现就是利用mmap(memory mapping)内存映射机制,我们来看看它的工作原理. 二. 参考文章 下面这几篇文章建议先好好阅读一下,都是总结的很好的文章, 每个人理解可能不一样 笔者也是看了好多博客文章和B站视频讲解, 然后加上自己的理解后 输出的一…