Mac下手动源码编译安装Swig

使用Homebrew安装

这个方式最简单,但是一般都是安装的最新版:

brew install swig

如果按照特定版本,需要看一个当前支持的列表:

brew search swig
brew install swig@3

源码编译安装

swig依赖pcre库,需要先安装pcre

安装pcre

下载链接:https://github.com/PhilipHazel/pcre2/releases

当前最新版本:在这里插入图片描述
安装步骤:

cd pcre2-10.40./configuremake && make install make -k check 

最终会安装到/usr/local目录。

安装swig

我这里需要的版本是4.0.2。
下载链接:https://www.swig.org/download.html
点击All releases,选择自己所需版本下载。

安装步骤:

./configuremake sudo make install

最终会安装到/usr/local目录。

遇到的问题

找不到libpcre.1.dylib

错误表现:

dyld[67898]: Library not loaded: @rpath/libpcre.1.dylib
Referenced from: <DE94F1C3-29F0-37BE-B92A-4C8087B41161> /usr/local/bin/swig
Reason: no LC_RPATH's found

查看swig需要链接的动态库pcre:

otool -l swig | grep pcrename @rpath/libpcre.1.dylib (offset 24)

这里pcre使用rpath (用于指定可执行文件或共享库在运行时查找依赖项的路径),我们知道pcre安装在/usr/local/lib目录下,所以解决方案:

sudo install_name_tool -add_rpath /usr/local/lib /usr/local/bin/swig

找不到libc++.1.dylib

错误表现一致:

dyld[71045]: Library not loaded: @rpath/libc++.1.dylib
Referenced from: <DE94F1C3-29F0-37BE-B92A-4C8087B41161> /usr/local/bin/swig
Reason: tried: '/usr/local/lib/libc++.1.dylib' (no such file), 
'/usr/local/lib/libc++.1.dylib' (no such file), 
'/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/libc++.1.dylib' (no such file), 
'/usr/local/lib/libc++.1.dylib' (no such file), 
'/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/libc++.1.dylib' (no such file)

查看swig需要链接的动态库pcre:

name @rpath/libc++.1.dylib (offset 24)

也是使用rpath,但是在/usr/local/lib目录下确实没有libc++。
之后,搜索了一下libc++的库:

find /usr -name "libc++.1.dylib"

发现之前安装anaconda3的时候有:

/usr/local/anaconda3/lib/libc++.1.dylib

所以可以改一下swig这里的链接:

sudo install_name_tool -change "@rpath/libc++.1.dylib" "/usr/local/anaconda3/lib/libc++.1.dylib" /usr/local/bin/swig

这样之后大工搞成。

验证

-> ~ swig -versionSWIG Version 4.0.2Compiled with g++ [x86_64-apple-darwin23.0.0]Configured options: +pcrePlease see http://www.swig.org for reporting bugs and further information

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈一下软件 QA 方法论 和 工具

浅谈一下软件 QA 方法论 和 工具 目录概述需求&#xff1a; 设计思路实现思路分析1.QA方法论2.Java QA工具 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result…

Oracle Extractor 软件下载

oracle Extractor 研发背景 在企业日益增长的 IT 系统中&#xff0c;数据容量正以几何级数扩展。 oracle DBA 在保证数据完整 性的课题上正面临着现有磁盘存储系统容量不足以存放全量备份&#xff0c;基于磁带的数据备份在恢 复数据时往往要求远远超过预期的平均修复时间等实际…

Linux系统——文本三剑客

目录 一、grep 1.格式 2.选项 2.1 grep重定向 2.2grep -m 匹配到几次停止 2.3grep -i 忽略大小写 2.4grep -n 显示行号 2.5grep -c 统计匹配行数 2.6grep -A 后几行 2.7grep -C 前后三行 2.8grep -B 前三行 2.9grep -e 或 2.10grep -w 匹配整个单词 2.11grep -r…

窥探向量乘矩阵的存内计算原理—基于向量乘矩阵的存内计算

在当今计算领域中&#xff0c;存内计算技术凭借其出色的向量乘矩阵操作效能引起了广泛关注。本文将深入研究基于向量乘矩阵的存内计算原理&#xff0c;并探讨几个引人注目的代表性工作&#xff0c;如DPE、ISAAC、PRIME等&#xff0c;它们在神经网络和图计算应用中表现出色&…

现代C++之万能引用、完美转发、引用折叠FrancisFrancis

转载&#xff1a;现代C之万能引用、完美转发、引用折叠 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/99524127 后期参考(还未整合)&#xff1a;C 完美转发深度解析:从入门到精通_c完美转发-CSDN博客https://blog.csdn.net/qq_21438461/article/details/129938466 0.导语 …

Dragons

题目链接&#xff1a; Problem - 230A - Codeforces 解题思路&#xff1a; 用结构体排序就好&#xff0c;从最小的开始比较&#xff0c;大于就加上奖励&#xff0c;小于输出NO 下面是c代码&#xff1a; #include<iostream> #include<algorithm> using namespac…

Java发送post请求

Java发送post请求 1.省份字典2.姓氏字典3.结婚时祝愿字典4.发送Post请求5.整合一起 1.省份字典 List<String> provinces new ArrayList<>();provinces.add("北京");provinces.add("天津");provinces.add("河北");provinces.add(&qu…

Python程序设计 流程控制

1. if判断语句 if 语句是最简单的选择结构。如果满足条件就执行设定好的操作&#xff0c;不满足条件就执行其他其他操作。 1.1 判断的定义 如果 条件满足&#xff0c;才能做某件事情&#xff0c; 如果 条件不满足&#xff0c;就做另外一件事情&#xff0c;或者什么也不做 …

java框架面试篇

Spring框架 spring Bean线程安全问题 Scope注解 我们可以在bean的类上加Scope注解来声明这个Bean是单个实例还是多个实例。在默认情况下Bean是单个实例的&#xff0c;此时的注解中的属性默认为Scope("singleton")&#xff0c;Scope("prototype")则是一…

dfs专题(记忆化搜索)P1141 01迷宫——洛谷(题解)

题目描述 有一个仅由数字 00 与 11 组成的 &#xfffd;&#xfffd;nn 格迷宫。若你位于一格 00 上&#xff0c;那么你可以移动到相邻 44 格中的某一格 11 上&#xff0c;同样若你位于一格 11 上&#xff0c;那么你可以移动到相邻 44 格中的某一格 00 上。 你的任务是&#…

一、图像读取显示

读取和显示函数主要为&#xff1a;imread()和imshow()函数 imread函数&#xff0c;im是image的缩写&#xff0c;read就是读入一张图片 同理&#xff0c;imshow也是一样的 C中读入的图片是按照矩阵&#xff08;Matrix&#xff09;进行存储的&#xff0c;故定义变量src的数据类型…

【pytorch】nn.linear 中为什么是y=xA^T+b

我记得读教材的时候是yWxb, 左乘矩阵W&#xff0c;这样才能表示线性变化。 但是pytorch中的nn.linear中&#xff0c;计算方式是yxA^Tb&#xff0c;其中A是权重矩阵。 为什么右乘也能表示线性变化操作呢&#xff1f;因为pytorch中&#xff0c;照顾到输入是多个样本一起算的&…

python魔法函数

1、init 用于初始化对象的属性和状态 当创建一个对象时&#xff0c;Python会自动调用该对象的__init__方法。 这个方法用于初始化对象的属性和状态&#xff0c;是对象创建过程中的一个重要环节 2、new # 通常我们不需要重写__new__方法&#xff0c;除非我们正在进行一些非常…

kerberos+kafka(2.13)认证(单节点ubuntu)

一&#xff1a;搭建kerberos。 1. 运行安装命令 apt-get install krb5-admin-server krb5-kdc krb5-user krb5-config2. 检查服务是否启动。 systemctl status krb5-admin-server systemctl status krb5-kdcsystemctl start krb5-admin-server systemctl startkrb5-kdc3. 修…

yum安装报错“Curl error (37): Could‘t read a file...”

使用yum命令安装软件包“libmcrypt-devel” 运行yum命令如下&#xff1a; yum install libmcrypt-devel 提示有这个软件以及软件版本信息&#xff0c;输入y后下载软件包。 稍后提示错误如下&#xff1a; 错误提示截图中&#xff0c;警告软件包libmcrypt-devel-2.5.8-26.el8…

Blender Object 的 name 字段不是 string

之前在获取 object 的 name 之后直接当作 string&#xff0c;对他调用 string 的函数&#xff0c;结果导致了 blender 崩溃&#xff0c;完全不知道哪错了 后面发现 object 的 name 字段似乎不是 string&#xff0c;需要先转到 string 感觉 blender 这点不好&#xff0c;调用了…

DC-磁盘配额(23国赛真题)

2023全国职业院校技能大赛网络系统管理赛项–模块B&#xff1a;服务部署&#xff08;WindowServer2022&#xff09; 文章目录 DC-磁盘配额题目配置步骤验证查看DC2驱动器C:\的磁盘配额&#xff0c;限制磁盘空间&#xff0c;警告等级等配置 DC-磁盘配额 题目 在DC2驱动器C:\上…

limit offset 分页传参

在上次优化分页查询的过程中搞错了limit分页的入参值 pageSize、pageNum 、currPage 导致出现了分页查询的问题 大数据量分页优化&#xff0c;应对PageHelper 这次我们攻坚limit 分页的参数值是如何处理的。 pageSize 页数 前端传过来的&#xff0c;默认10 currPage 当前页 …

测试用例级别该如何定义 ? 在工作中该如何应用它 ? 把握好这5个场景即可。

1.级别的作用 在编写测试用例的过程中&#xff0c;用例的级别经常是一个不可缺少的字段 &#xff0c;本篇幅就来聊下这个字段 &#xff0c;首先从它的作用是什么呢 &#xff1f;我觉得主要有两点 &#xff0c;分别是 &#xff1a; 用于测试用例不同套件的选取 &#xff0c;即用…

C# Socket 允许控制台应用通过防火墙

需求&#xff1a; 在代码中将exe添加到防火墙规则中&#xff0c;允许Socket通过 添加库引用 效果&#xff1a; 一键三联 若可用记得点赞评论收藏哦&#xff0c;你的支持就是写作的动力。 源地址: https://gist.github.com/cstrahan/513804 调用代码: private static void …