Autoconf、Libtool、および未定義のAC_PROG_LIBTOOL


17

ライブラリを構築しようとしていますが、READMEの手順ではconfigure.acを呼び出してからmakeを実行します。

残念ながら、私はエラーに直面しています:

configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

これで、libtoolがインストールされていることがわかりました(Scientific Linux 6.2(未アップグレード)を実行しており、念のため、automake、autoconf、libtool、libtool-develのrpmを取得するためにyum --downloadonlyを使用しました)。

それらはインストールされており、libtoolは現在/ usr / share / libtoolにあります。ただし、autoconfはそれを見つけられないようです。

Googleのすべての結果は「libtoolのインストール」でしたが、まったく役に立ちません。どんな助けやガイダンスも本当にありがたいです。問題がrpm -iがここでlibtoolを取得することを台無しにしたのか、または/ usr / share / libtoolを他のどこかにリンクする必要があるのか​​どうか(だから、他のすべてがそれを見つけることができる)かどうかはわかりません。

回答:


11

libtoolをインストールする必要があります

Ubuntuで:

sudo apt-get install libtool

Redhatベース:

yum install libtool

5
質問はすでにこれは問題ではないと述べた。
ケビンパンコ

10

さまざまなフォーラムでインターネット中に見つかったすべての「再インストール」の答えに満足していなかったため、非ディストリビューションのlibtoolをインストールせずにこれを解決することに固執し、決意しました。(CentOS 7で実行しています。)

https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.htmlを読むと、頭上の電球が点灯しました。マクロファイルを見つけるのに使用される検索パスはで定義されたもの--prefixで、デフォルトでは通常/usr/localです。したがって、/usr/local検索/usr/local/share/aclocal-APIVERSIONおよびにインストールされるパッケージのautoconf /usr/local/share/aclocal

CentOS7を含む多くのディストリビューションでは、7つのマクロファイルlibtoolsがの下で/usr/share/aclocalはなく下にインストールされます/usr/local/share/aclocal。そのため、ビルドしているパッケージがにプレフィックスを設定しても、それらは見つかりません/usr/local

すでに/usr/local/share/aclocalディレクトリがある場合にこれを修正するには、ルートとして次を入力します。

for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete
do
  ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4
done

/usr/local/share/aclocalディレクトリがない場合にこれを修正するには、ルートとして次を入力します。

ln -s /usr/share/aclocal /usr/local/share/aclocal

Voilà-問題は解決しました。


CentOS 7クラスターでのこの(suuuper-aggravating、永続的)問題は、大体のヒントでほぼ修正されました。プロジェクトに付属しているautogen.sh場合は、他のオプションと一緒exec autoreconfに含めるように行を変更することもでき-I /usr/share/alocalます。これは私が実際に行ったことです。configureスクリプトを生成するために呼び出される実際のコマンドは、autoreconf -v -f -i -I /usr/share/aclocalです。
TheDudeAbides

9

また、libtoolなどを標準以外のディレクトリにインストールしましたが、このエラーは実際にはautoconfがlibtoolのm4マクロを見つけられないことです。はい、libtoolがインストールされていないだけでなく、非標準のインストールディレクトリにあることが原因の場合もあります。ここに私の修正があります:

export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH

私は自分の .bash_profile


1
これを行う別の方法:autoreconf -I $ HOME / install / libtool / share / aclocal
モラルリリアン

1

エラーを修正するには、再インストールする必要があるため、次の手順に従ってください。

1]現在のlibtoolがインストールされている場合は削除します。 sudo apt-get purge libtool

2]公式ウェブサイトhttps://www.gnu.org/software/libtool/からダウンロードします

3]展開する: tar -xzvf "name of the tar_file"

4]フォルダを入力して、次を入力します。 ./configure && make

5]インストール: sudo make install

これで完了です。エラーを修正する必要があります!


0
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
    If this token is legitimate please use m4_pattern_allow

今、私はlibtoolがインストールされていることを知っています...

これは通常、libtool開発ギアがインストールされていないことを示しています(インストールされている場合もありますlibtool)。

libltdl-devDebianとUbuntuにインストールする必要があります。そしてlibtool-ltdl-develFedoraで。


パッケージの検索は次のとおりです。

フェドラ

$ yum search libtool
======================== Name Exactly Matched: libtool =========================
libtool.x86_64 : The GNU Portable Library Tool
======================= Summary & Name Matched: libtool ========================
libtool-ltdl.x86_64 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl.i686 : Runtime libraries for GNU Libtool Dynamic Module Loader
libtool-ltdl-devel.x86_64 : Tools needed for development using the GNU Libtool
                          : Dynamic Module Loader
libtool-ltdl-devel.i686 : Tools needed for development using the GNU Libtool
                        : Dynamic Module Loader
=========================== Summary Matched: libtool ===========================
mingw32-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader
mingw64-libltdl.noarch : Runtime libraries for GNU Libtool Dynamic Module Loader

Ubuntu

$ apt-cache search libtool
autotools-dev - Update infrastructure for config.{guess,sub} files
libltdl-dev - System independent dlopen wrapper for GNU libtool
libltdl7 - System independent dlopen wrapper for GNU libtool
libtool - Generic library support script
libtool-bin - Generic library support script (libtool binary)
libtool-doc - Generic library support script
...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.