我需要使用包 X。X 依赖于 Y,所以我需要 Y 的开发包(Y-dev)。我也有Y的源码。我如何从 Y 的源代码编译 Y-dev?
如果这个问题不连贯,请为我指出如何利用 X 所依赖的包 Y 的正确方向。
规格:
X是R-2.15.3
Y 是 readline-6.2
我下载了 readline-6.2 并将其安装到$HOME/software
.我也设置了
$C_INCLUDE_PATH=$HOME/software/include:$HOME/software/include/readline
和
$LD_LIBRARY_PATH=$HOME/software/lib:$HOME/software/lib64
我有以下 readline 文件$LD_LIBRARY_PATH
:
/home/paulk/software/lib/libreadline.a
/home/paulk/software/lib/libreadline.old
/home/paulk/software/lib/libreadline.so
/home/paulk/software/lib/libreadline.so.6
/home/paulk/software/lib/libreadline.so.6.2
/home/paulk/software/lib/libreadline.so.6.2.old
当我竞选./configure --prefix=$HOME/software
R-2.15.3 时,我得到
configure: error: --with-readline=yes (default) and headers/libs are not available
。
我的发行版是 Scientific Linux,它是基于 RPM 的。
答案1
好的。看来我不需要编译开发包了。要使用 readline 需要我对脚本CFLAGS
进行如下设置LDFLAGS
./configure
export CFLAGS=-I$HOME/software
export LDFLAGS=-L$HOME/software
这是我的推理:当您使用包管理器时,您需要一个开发包,因为大多数时候您只需要预编译的应用程序。开发包是一个预编译,旨在提供您将拥有的内容如果你是从源代码编译的。
因此,当你有源代码时,尝试编译开发包是不连贯的,原因有两个:
- 你有所有的来源
- 您不需要与包管理器一起工作
我确信有些专业人士可以微调我的论点,但是(嘿!)它解决了问题并且有意义。
谢谢。