Rserve:ld:-lssl找不到库

时间:2019-01-16 20:30:54

标签: r rserve

尝试安装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’

2 个答案:

答案 0 :(得分:0)

这对我有用(MacOS):

在终端中:

brew install openssl

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

答案 1 :(得分:0)

我正在运行Mac OS 10.15 Catalina,我花了2天的时间来解决此问题,并在Internet上寻求帮助。最后,我通过汇总来自几个不同来源的解决方案来进行管理。

我缺少的关键是Mac OS附带了自己的openssl版本,它认为它比您能找到的其他任何版本都要优越。这是错误的。您需要做的是下载最新版本的openssl,进行安装,然后将THAT库导出到您的库路径变量中。这是我对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指令,请参见the openssl documentation

./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/

希望它能对您有所帮助,如果您还没有弄清楚的话,以及将来像我一样准备在房间里装满计算机的任何其他人。