跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • macOS 如何同时安装 OpenSSL 的动态链接库 libssl.1.1.dylib 和 libssl.1.0.0.dylib?
未分類
14 5 月 2020

macOS 如何同时安装 OpenSSL 的动态链接库 libssl.1.1.dylib 和 libssl.1.0.0.dylib?

macOS 如何同时安装 OpenSSL 的动态链接库 libssl.1.1.dylib 和 libssl.1.0.0.dylib?

資深大佬 : johannhuang 14

我遇到的情况是这样的,从 GitHub 下载了一个 C++的项目代码,然后 cmake 的时候出现了下面的报错信息

“`
dyld: Library not loaded: /opt/local/lib/libssl.1.0.0.dylib
Referenced from: /opt/local/lib/libcurl.4.dylib
Reason: image not found
Abort trap: 6
“`

我的 OpenSSL 是经过 Homebrew 新安装过的,所以我能在 /opt/local/lib/目录下找到 libssl.dylib, libssl.a, libssl.1.1.dylib 。也就是很明显,现在的最新版就是 1.1,然而不知道项目里面那个地方使用了 libcurl,而 libcurl 似乎硬性指定了使用 libssl.1.0.0.dylib (我对 C++编译系统理解有限,也许是其他环境变量设置问题),所以因为缺少 1.0.。0 版本导致报错。

所以各位技术朋友,你们指定 macOS 上怎么同时优雅的存在 libssl.1.1.dylib 以及 libssl.1.0.0.dylib 么?

大佬有話說 (16)

  • 主 資深大佬 : johannhuang

    V2 上的相关问题及链接

    – 哪里下载 libssl.so.1.0.0 和 libcrypt.so.1.0.0 ?,https://www.v2ex.com/t/366463
    – MacOS Catalina Python 意外退出解决,https://www.v2ex.com/t/609382
    – 请问升级 OpenSSL 的问题。,https://www.v2ex.com/t/654914

    然而,上面问题的解决办法我担心会破坏本身使用新版 libssl1.1.dylib 的情况。

  • 主 資深大佬 : johannhuang

    问题感觉还是应该从解决 libcurl 入手,因为我强行 给 1.0.0 加链接到 1.1 后,还是报错了。

    “`
    dyld: Symbol not found: _MD5_Final
    Referenced from: /opt/local/lib/libcurl.4.dylib
    Expected in: /opt/local/lib/libcrypto.1.0.0.dylib
    in /opt/local/lib/libcurl.4.dylib
    Abort trap: 6
    “`

  • 資深大佬 : Kobayashi

    把项目发出来,等下。

  • 資深大佬 : lcdtyph

    /opt/local 不是 macports 的 prefix 吗?

  • 資深大佬 : arischow

    我上次跑 wget 出现类似错误,于是我 brew reinstall wget

  • 資深大佬 : arischow

    上说得有点道理,看起来 prefix 不是 homebrew

  • 資深大佬 : IgniteWhite

    prefix 一般是 /usr/local

  • 資深大佬 : arischow

    brew switch 了解一下,另 你这个问题 Google 有答案。

  • 資深大佬 : tianshilei1992

    CMake 查找 library 的规则是 hard code 在 CMake 自己里面的。不妨试试有什么环境变量可以让 CMake 优先去查找你自己装的这个 library path 。
    还有一个办法就是(一定会成功),找找 find_library(ssl) 成功以后会设置哪些 CMake 的变量,然后在 CMake 的时候把这几个变量手动指定进去就好了。

  • 主 資深大佬 : johannhuang

    @arischow 我这个问题 Goolge 上有很多错误答案。要不然也不会在这里贴出来求助了。

  • 主 資深大佬 : johannhuang

    @Kobayashi 这个和项目没啥关系了,因为错误报的算是很明确了。就是这玩意儿 /opt/local/lib/libcurl.4.dylib 引用不到想要的动态链接库了。

  • 主 資深大佬 : johannhuang

    @lcdtyph 谢谢 应该就是你说的 macports 搞事情了。我之前用过 macports,可能就是被 ports 搞出问题了。

  • 資深大佬 : lcdtyph

    @johannhuang #12
    你可以都用 homebrew 的组件,brew install curl-openssl 这个 curl 是 link 到 brew 自己的 openssl1.1 的
    如果你不需要 macports 的话最好把它的路径从环境变量里移除

  • 主 資深大佬 : johannhuang

    问题相关链接,以防有后来的小伙伴遇到同样的问题 https://stackoverflow.com/questions/44290925/curl-gives-an-error-on-mac-os

  • 資深大佬 : Kobayashi

    你这是 macports 没卸载啊?环境变量 PATH 里还有 /opt/local/bin

  • 主 資深大佬 : johannhuang

    @lcdtyph 我把 macports 的包升级了后就可以了。Homebrew 使用的 link 的方式,MacPorts 用的环境变量前置,我还是想都留着的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具