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

./configure

make && make install 

make -k check 

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

安装swig

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

安装步骤:

./configure

make 

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 pcre
         name @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 -version

SWIG Version 4.0.2

Compiled with g++ [x86_64-apple-darwin23.0.0]

Configured options: +pcre

Please see http://www.swig.org for reporting bugs and further information

相关推荐

  1. Ubuntu手动编译安装Python

    2024-01-31 08:40:01       24 阅读
  2. LInux、编译安装

    2024-01-31 08:40:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-31 08:40:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-31 08:40:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-31 08:40:01       82 阅读
  4. Python语言-面向对象

    2024-01-31 08:40:01       91 阅读

热门阅读

  1. Elasticsearch:入门

    2024-01-31 08:40:01       43 阅读
  2. Flink 添加 / 部署 Jar 包的若干注意事项

    2024-01-31 08:40:01       45 阅读
  3. 下载jar中classes下的文件

    2024-01-31 08:40:01       63 阅读
  4. 数据仓库之数据治理

    2024-01-31 08:40:01       47 阅读
  5. Android 14 修改安兔兔等三方工具显示的屏幕尺寸

    2024-01-31 08:40:01       112 阅读
  6. linux -- per-CPU变量

    2024-01-31 08:40:01       56 阅读
  7. 3分钟搞定springboot 定时任务cron表达式

    2024-01-31 08:40:01       60 阅读
  8. BERT问答模型回答问题

    2024-01-31 08:40:01       47 阅读
  9. 大数据存储与处理技术之Spark

    2024-01-31 08:40:01       46 阅读
  10. C++ 实现单例模式

    2024-01-31 08:40:01       50 阅读
  11. Vue 甘特图 gantt 安装使用

    2024-01-31 08:40:01       52 阅读