私は、私のシステムパッケージを介してインストールされたオープンソースプロジェクトに対していくつかの作業を行う予定です。システムにインストールされているパッケージを維持しながら、開発中のバージョンをコンパイルして実行したいという状況を管理するために提案されたワークフローがあるかどうか疑問に思います。
私の質問は、以前は他のプロジェクトでこれについて考えたことがあるので、非常に一般的な質問ですが、この特別な例を通して質問をしました。
私が言及したプロジェクトは瀬。もちろん、プロジェクトには異なる依存関係がありますが、特に同じ著者の依存関係があります。libtorrent。要点は、これらの両方が私のシステムパッケージよりも最新であるため、両方をインポートし、そのlibtorrentバージョンに対してrtorrentをビルドする必要があることです。
今まで私はlibtorrentをコンパイルしましたが、make install
私のシステムパッケージと競合すると思うので、まだ実際に実行していません。結局、ライブラリファイルをにダンプしますsrc/.libs
が、ヘッダファイルにもアクセスする必要があると思います。そうですか?
このgit cloned rtorrentの構築をどのように進めるべきですか?以前にこのようなことをしたことがないので、無知を許してください。しかし、すべてが台本を中心に行われますか ./configure
?単にuseを使用してLDFLAGS
ライブラリパスを追加し-L
、CPPFLAGS
インクルードパス(ヘッダー用)を追加する必要がありますか-I
?それとも、libtorrentとrtorrentの共通分母を使用してre- ./configure
libtorrentを使用して--prefix
からmake install
libtorrentを使用する必要がありますか?
ありがとうございます!
編集する:./configure --help
これらの「影響力のある環境変数」を表示します。
libtorrent_CFLAGS
C compiler flags for libtorrent, overriding pkg-config
libtorrent_LIBS
linker flags for libtorrent, overriding pkg-config
私が気になるのは、LDFLAGS
andを設定しても、CPPFLAGS
最終的にはlibtorrentが使用する情報を取得し続けるので、pkg-config
それを使用しなければならないという印象を与えるということです。これにより、成功した./configure
実行が可能になり、引き続き--prefix
使用できると考えられるパラメータが得られました。
答え1
この問題を処理する2つの主な方法があります。ランタイム時、rpathを使用して接続するか、LD_LIBRARY_PATHまたはLD_PRELOADを介して開発共有オブジェクトをロードします。
コンパイル時に必要な-I / -Lコマンドラインオプションを挿入する必要があります(すでに方法が見つかりました)。
まあ、私にとってうまくいったのは、rpath-linkingを使ってpkgconfigに固執して生成された設定ファイルをパッチして正しいパスをエクスポートすることでした。バラよりこのスクリプトもっと学ぶ。