首页 > 解决方案 > Rserve:ld:找不到-lssl的库

问题描述

尝试安装 Rserve 1.8.6 时出现错误。我可以从 CRAN 成功安装 1.7.3。这是在 Mac OS High Sierra 上。

 ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [forward] Error 1
make: *** [all] Error 2
ERROR: compilation failed for package ‘Rserve’
* removing ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rserve’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rserve’

The downloaded source packages are in
    ‘/private/var/folders/v7/hyxrfmk94p1_03gdrm27fnxncy3vq1/T/RtmpFHKNMe/downloaded_packages’

标签: rrserve

解决方案


我正在运行 Mac OS 10.15 Catalina,我花了 2 天时间试图解决同样的问题,并在互联网上寻求帮助。我最终通过拼凑来自几个不同来源的解决方案来管理它。

我缺少的关键是 Mac OS 附带了它自己的 openssl 版本,它认为它优于你能找到的任何其他版本。这是错误的。你需要做的是去下载最新版本的openssl,安装它,然后将那个库导出到你的库路径变量。以下是我使用 openssl 1.1.1 所采取的步骤:

从源 ( https://www.openssl.org/source/ )获取最新版本的 openssl 的版本号,然后直接手动安装它应该去的地方:

cd /usr/local/src  
  • 如果您收到“没有这样的文件或目录”,请执行以下操作:

    cd /usr/local && mkdir src && cd src

使用 curl(如图所示)或使用上面的源代码链接下载 openssl(确保将文件放在上一步中刚刚创建的目录中):

curl --remote-name https://www.openssl.org/source/openssl-1.1.1f.tar.gz

提取并 cd 进入:

tar -xzvf openssl-1.1.1f.tar.gz
cd openssl-1.1.1f

编译并安装(这些是 64 位 Mac OS 说明。有关 32 位和其他 OS 说明,请参阅openssl 文档):

./Configure darwin64-x86_64-cc shared enable-ec_nistp_64_gcc_128 no-ssl2 no-ssl3 no-comp --openssldir=/usr/local/ssl/macos-x86_64
make depend
sudo make install

这创建了一个新的 openssl 文件夹,因此当您导出库路径时,您必须为其提供正确的 openssl 文件夹:

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl@1.1/lib/

如果您还没有弄清楚,希望对您有所帮助,以及将来准备将计算机扔到房间另一边的任何人,就像我一样。


推荐阅读