我正在尝试构建R openssl包并将其链接到openssl库,该库是比系统范围的lib64目录中的版本更新的版本。 Makevars文件只包含:
KG_CPPFLAGS=@cflags@
PKG_LIBS=@libs@
我可以通过在configure
脚本中传递自定义库路径来指定我的本地库。但是当我发出R CMD INSTALL
时,链接命令以
gcc -std=gnu99 -shared -L/usr/local/lib64 -o openssl.so [...objects...] -Lmy/path/here -lssl -lcrypto
结果,链接器找到了错误的库(/ usr / local / lib64中的库),而不是我的。
如何调整链接命令,使其在我的目录中查找库 ,而不是系统文件夹。
(背景:我没有root访问权限,这个旧版本的CentOS(5)不支持openssl v1,所以我自己构建v1只是为了编译R包。但是我陷入了连接阶段由于R CMD INSTALL正在发生任何魔法。)
答案 0 :(得分:0)
我通过将参数传递给R CMD INSTALL来解决这个问题。即:
R CMD INSTALL . --configure-vars="INCLUDE_DIR=$HOME/local/include LIB_DIR=$HOME/local/lib64"
但每种包装都有所不同。没有通用的解决方案。 相反,请阅读config和src / Makefile.in。