
5番目のブラウザをインストールしようとしています(ウェブサイト)(旗ハブリンク)Xubuntu 16.04.2 LTSで。
公式のデプロイメントリポジトリからすべての依存関係を取得し、Synapticを使用してインストールできました。それらの一つ5番目のホームページに記載されているようにliburlmatchと呼ばれます(旗ハブリンク)。ワイルドカードを使用するときにURLをブロックできる単純なライブラリのようです。
次のようにurlmatchをインストールしました:
/ git clone https://github.com/clbr/urlmatch.git次に、
別のフォルダに/ sudo checkinstallをインストールします。これは完璧に動作するようです。
5番目のフォルダで./configureを実行すると、最後の数行は次のようになります。
checking for fltk-config13... no
checking for fltk-config... fltk-config
checking for url_init in -lurlmatch... no
configure: error: liburlmatch not found
あなたの便宜のために、以下のPastebinでurlmatch関連の設定ファイルセクションを見つけることができます。liburlmatch 構成のコードブロック。
私は何が間違っていましたか?構成スクリプトがurlmatcherライブラリを認識しないのはなぜですか?あなたの答えでこれらのプログラムをコンパイルすることが初めてであることを検討してください。ありがとうございます。
答え1
問題は、実際には、Fifth-5.0の設定スクリプトがurlmatchライブラリのconftestを構築して実行する方法に関連しているようです。
1. エラー
checking for url_init in -lurlmatch... no
configure: error: liburlmatch not found
これは多少誤解を招くことがわかります。見てみるとconfig.log
、関数への未定義の参照のために conftest が実際に構築されていないことがわかりますuncompress
。
configure:5511: checking for url_init in -lurlmatch
configure:5546: g++ -o conftest -g -O2 -pthread -isystem /usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng12 -isystem /usr/include/freetype2 -isystem /usr/include/cairo -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/pixman-1 -isystem /usr/include/freetype2 -isystem /usr/include/libpng12 -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -lz conftest.cpp -lurlmatch -Wl,-Bsymbolic-functions -lfltk_images -lfltk -lX11 >&5
//usr/local/lib/liburlmatch.a(opti_init.o): In function `initbin':
opti_init.c:(.text+0xd6): undefined reference to `uncompress'
collect2: error: ld returned 1 exit status
configure:5552: $? = 1
その理由は〜uncompress
に接続されているからです。libz
今後 liburlmatch
:
. . . -lz conftest.cpp -lurlmatch -Wl,-Bsymbolic-functions -lfltk_images -lfltk -lX11 >&5
両方のライブラリの必須接続順序に従わない1 。configure.ac
これにより、スクリプトを生成したファイルまで詳細に追跡できます。configure
# Checks for libraries.
OLD_LDFLAGS=[$LDFLAGS]
LDFLAGS=["$LDFLAGS -lz"]
AC_CHECK_LIB([urlmatch], [url_init], [], AC_MSG_ERROR([liburlmatch not found]))
LDFLAGS=[$OLD_LDFLAGS]
LIBS
つまり、リストに追加されるのではなく、追加-lz
されますLDFLAGS
(追加のライブラリを指定するためにより一般的に使用されます)。道前にLIBS
)。
迅速で汚い解決策は、./configure
明示的なLIBS
パラメータを使用して呼び出すことです。
./configure "LIBS=-lz"
これにより、コマンドライン-lz
に追加のコンテンツが配置されます。g++
後ろにライブラリurlmatch
(他の頭にありますLIBS
):
. . . -lz conftest.cpp -lurlmatch -lz -Wl,-Bsymbolic-functions -lfltk_images -lfltk -lX11 >&5
より永続的な解決策は、代わりに追加するファイルを変更してからconfigure.ac
再構築(または必要に応じて)を使用することです。-lz
LIBS
LDFLAGS
configure
autoconf
autoreconf
参考資料: