パッケージ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
。
私のディストリビューションはRPMベースのScientific Linuxです。
答え1
[OK] 開発パッケージをコンパイルする必要はないようです。 readline を使用するには、CFLAGS
次のようにスクリプトを設定する必要があります。LDFLAGS
./configure
export CFLAGS=-I$HOME/software
export LDFLAGS=-L$HOME/software
私の推論は次のとおりです。パッケージマネージャを使用する場合、ほとんどの場合プリコンパイルされたアプリケーションのみが必要なため、開発パッケージが必要です。開発パッケージは、あなたが持っているものを提供するように設計されたプリコンパイルされたバージョンです。もしソースコードからコンパイルします。
したがって、ソースコードがあるときに開発パッケージをコンパイルすることは、次の2つの理由で一貫していません。
- あなたはすべてのソースを持っています
- パッケージマネージャと協力する必要はありません。
一部の専門家が私の主張を細かく調整できると確信していますが(ねえ!)問題が解決され、意味があります。
ありがとうございます。