我应该如何从源代码编译开发包?

我应该如何从源代码编译开发包?

我需要使用包 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/softwareR-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

这是我的推理:当您使用包管理器时,您需要一个开发包,因为大多数时候您只需要预编译的应用程序。开发包是一个预编译,旨在提供您将拥有的内容如果你是从源代码编译的。

因此,当你有源代码时,尝试编译开发包是不连贯的,原因有两个:

  1. 你有所有的来源
  2. 您不需要与包管理器一起工作

我确信有些专业人士可以微调我的论点,但是(嘿!)它解决了问题并且有意义。

谢谢。

相关内容