aclocal-1.14找不到問題

編譯ragel時發現問題,具體信息以下:html

WARNING: 'aclocal-1.14' is missing on your system.python

      You should only need it if you modified 'acinclude.m4' orlinux

      'configure.ac' or m4 files included by 'configure.ac'.git

      The 'aclocal' program is part of the GNU Automake package:github

      <http://www.gnu.org/software/automake>bash

      It also requires GNU Autoconf, GNU m4 and Perl in order to run:服務器

      <http://www.gnu.org/software/autoconf>app

      <http://www.gnu.org/software/m4/>less

      <http://www.perl.org/>工具

make: *** [/install/Mesa-10.3.5/aclocal.m4] Error 127

 

google解決方案爲:sudo autoreconf -ivf  

連接: http://blog.csdn.net/arackethis/article/details/42222905

引用內容以下:

安裝Mesa時,最後一個錯誤報「WARNING: 'aclocal-1.14' is missing on your system.」,雖然是個Warning,可是沒法進行下一步make,因此必須解決。根據warning給的提示以及網上搜的信息判斷,這是一個時間戳變化致使的系統覺得文件被修改,因此須要從新編譯幾個腳本文件。實際上我從官網下載來的源文件壓縮包我根本沒動過,應該是解壓過程當中系統版本不同或者時間差致使的文件時間戳發生了變化而已(能想到這個,由於我從本機往US的服務器傳文件時,解壓縮時老是會提示文件的時間戳變爲何什麼了,也就是常說的timestamp skew)。這錯誤比較少見,相關資料實在太少。能Google的都被我Google了,最後仍是讓我找到了解決方案,記錄在這供後來人借鑑以節約時間。

 

該錯誤詳情:

test@test:/usr/local/src/Mesa_build$ sudo make

CDPATH="${ZSH_VERSION+.}:" && cd /install/Mesa-10.3.5 && /bin/bash /install/Mesa-10.3.5/bin/missing aclocal-1.14 -I m4

/install/Mesa-10.3.5/bin/missing: line 81: aclocal-1.14: command not found

WARNING: 'aclocal-1.14' is missing on your system.

      You should only need it if you modified 'acinclude.m4' or

      'configure.ac' or m4 files included by 'configure.ac'.

      The 'aclocal' program is part of the GNU Automake package:

      <http://www.gnu.org/software/automake>

      It also requires GNU Autoconf, GNU m4 and Perl in order to run:

      <http://www.gnu.org/software/autoconf>

      <http://www.gnu.org/software/m4/>

      <http://www.perl.org/>

make: *** [/install/Mesa-10.3.5/aclocal.m4] Error 127

 

很天然的就想到按提示去裝那幾個autotools,就如這裏建議的:http://stackoverflow.com/questions/24233721/build-m4-autoconf-automake-libtool-on-unix

You do not need to install the autotools. Most likely, the problem is caused by a timestamp skew and some files in the pcre tarball have been unpacked with incorrect timestamps. (This often happens if you unpack the tarball on a network drive.)Trying to recreate the configure script using the autotools is not the simplest solution.

 

解決方法以下:

  1. 用Synaptic Package Manager搜索安裝這些庫(顯然有些是重複的,當時不清楚用哪一個索性全添加了):

   autotools-dev

   automake

   autoconf2.13

   m4

   perl

   libperl5.14

 

  1. 執行以下命令:

test@test:/usr/local/src/Mesa-10.3.5$sudo autoreconf -ivf         就是這一句解決了問題

注意:這條語句是在源文件目錄(Mesa-10.3.5)下執行,不然會找不到文件:

 

[html] view plain copy

  1. autoreconf2.50: `configure.ac' or `configure.in' is required  

 

 

  1. 而後從新配置,編譯。

test@test:/usr/local/src/Mesa-10.3.5$sudo ./configure --disable-dri3

配置完,編譯:

test@test:/usr/local/src/Mesa-10.3.5$sudo make

再也不報開始那個錯誤了!

 

參考:

正如https://github.com/SIPp/sipp/issues/61帖子裏rkday說的,他建議步驟二中嘗試如下2種方法:

Could you try the two troubleshooting suggestions athttps://github.com/SIPp/sipp#building? That is, do command:

touch configure.ac aclocal.m4 configure Makefile.am Makefile.in

or

autoreconf -ivf

There-running configure and make, one of them should fixes this problem.

 

我兩種都試了,touch那個不行,the second one (autoreconf) works for me, on my Ubuntu 12.04, good luck!

 

其它信息:

步驟2)和3)中雖然再也不報'aclocal-1.14' is missing on your system錯誤,可是還會報以下一些錯誤(這些都很好解決了):

test@test:/usr/local/src/Mesa-10.3.5$sudo touch configure.ac aclocal.m4 configure Makefile.am Makefile.in

test@test:/usr/local/src/Mesa-10.3.5$sudo autoreconf -ivf

Can't exec "libtoolize": No such file or directory at /usr/bin/autoreconf2.50 line 196.

Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf2.50 line 196.

autoreconf2.50: Entering directory `.'

autoreconf2.50: configure.ac: not using Gettext

autoreconf2.50: running: aclocal --force -I m4

autoreconf2.50: configure.ac: tracing

autoreconf2.50: configure.ac: not using Libtool

autoreconf2.50: running: /usr/bin/autoconf --force

autoreconf2.50: configure.ac: not using Autoheader

autoreconf2.50: running: automake --add-missing --copy --force-missing

src/egl/drivers/dri2/Makefile.am:36: Libtool library used but `LIBTOOL' is undefined

src/egl/drivers/dri2/Makefile.am:36:   The usual way to define `LIBTOOL' is to add `LT_INIT'

src/egl/drivers/dri2/Makefile.am:36:   to `configure.ac' and run `aclocal' and `autoconf' again.

src/egl/drivers/dri2/Makefile.am:36:   If `LT_INIT' is in `configure.ac', make sure

src/egl/drivers/dri2/Makefile.am:36:   its definition is in aclocal's search path.

…...

 

解決方法:用Synaptic Package Manager搜索安裝:libtool和libltdl-dev

 

test@test:/usr/local/src/Mesa-10.3.5$sudo autoreconf -ivf

autoreconf2.50: Entering directory `.'

autoreconf2.50: configure.ac: not using Gettext

autoreconf2.50: running: aclocal --force -I m4

autoreconf2.50: configure.ac: tracing

autoreconf2.50: running: libtoolize --install --copy --force

libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `bin'.

libtoolize: copying file `bin/config.guess'

libtoolize: copying file `bin/config.sub'

libtoolize: copying file `bin/install-sh'

libtoolize: copying file `bin/ltmain.sh'

libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.

libtoolize: copying file `m4/libtool.m4'

libtoolize: You should add the contents of `m4/libtool.m4' to `aclocal.m4'.

libtoolize: copying file `m4/ltoptions.m4'

libtoolize: You should add the contents of `m4/ltoptions.m4' to `aclocal.m4'.

libtoolize: copying file `m4/ltsugar.m4'

libtoolize: You should add the contents of `m4/ltsugar.m4' to `aclocal.m4'.

libtoolize: copying file `m4/ltversion.m4'

libtoolize: copying file `m4/lt~obsolete.m4'

libtoolize: You should add the contents of `m4/lt~obsolete.m4' to `aclocal.m4'.

autoreconf2.50: running: /usr/bin/autoconf --force

autoreconf2.50: configure.ac: not using Autoheader

autoreconf2.50: running: automake --add-missing --copy --force-missing

src/mesa/Makefile.sources:7: BUILDDIR multiply defined in condition TRUE ...

src/mesa/Makefile.am:63:   `src/mesa/Makefile.sources' included from here

src/mesa/Makefile.am:62: ... `BUILDDIR' previously defined here

autoreconf2.50: Leaving directory `.'

成功。

 

test@test:/usr/local/src/Mesa-10.3.5$sudo ./configure --disable-dri3

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking target system type... x86_64-unknown-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /usr/local/bin/mkdir -p

checking for gawk... no

checking for mawk... mawk

...

順利完成。

 

test@test:/usr/local/src/Mesa-10.3.5$ sudo make

...

 CC   st_gen_mipmap.lo

 CXX   st_glsl_to_tgsi.lo

 CC   st_manager.lo

 CC   st_mesa_to_tgsi.lo

 CC   st_program.lo

 CC   st_texture.lo

 CC   st_vdpau.lo

 CXXLD  libmesagallium.la

make[4]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa'

Making all in main/tests

make[4]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/main/tests'

make[4]: Nothing to be done for `all'.

make[4]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/main/tests'

Making all in drivers/dri

make[4]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri'

Making all in common

make[5]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common'

Making all in xmlpool

make[6]: Entering directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common/xmlpool'

Updating (ca) ca/LC_MESSAGES/options.mo from ca.po.

/bin/bash: line 4: msgfmt: command not found

make[6]: *** [ca/LC_MESSAGES/options.mo] Error 127

make[6]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common/xmlpool'

make[5]: *** [all-recursive] Error 1

make[5]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri/common'

make[4]: *** [all-recursive] Error 1

make[4]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa/drivers/dri'

make[3]: *** [all-recursive] Error 1

make[3]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa'

make[2]: *** [all] Error 2

make[2]: Leaving directory `/usr/local/src/Mesa-10.3.5/src/mesa'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/usr/local/src/Mesa-10.3.5/src'

make: *** [all-recursive] Error 1

test@test:/usr/local/src/Mesa-10.3.5$

 

安裝:liblocale-msgfmt-perl庫,sudo make 不行,仍然報一樣錯誤。網上搜了下,參考http://feixiong.blog.51cto.com/4216340/1177343說的,安裝gettext庫。sudo make,能夠了。詳情能夠點(這裏)。

 

我autoreconf後sudo make, 還遇到過下面一個奇怪錯誤:

 

[html] view plain copy

  1. checking for make... make  
  2. checking for python2... python2  
  3. checking for a sed that does not truncate output... /bin/sed  
  4. ./configure: line 6427: syntax error near unexpected token `2.2'  
  5. ./configure: line 6427: `LT_PREREQ(2.2)'  


解決方法: 把源文件目錄清空,build目錄也清空,從新解壓,從新配置編譯就行。

 

 

總結:徹底不必求新,建議直接安裝稍低版本,好比3.8,穩定,夠用,不會這麼多錯誤/警告,少不少麻煩!!

 

題外話: 我是新手,第一次接觸autoconf, automake,以爲如下文字寫的好,備案在此供之後深度學習這個工具時參閱:

autoconf is the tool which generates a configure script based upon a configure.ac file.
autoscan can generate a preliminary configure.ac (named configure.scan) but you'll probably need to adjust it by hand anyway.
automake generates Makefile files based upon user-edited Makefile.am files and is automatically called by autoconf if the configure.ac script initializes the automake subsystem (using the AM_INIT_AUTOMAKE() macro). You can't expect those tools (especially autoscan) to pick up the right configuration for you at the first try, as only you know (or should know) how the project is laid out.
 

Are you using a clone from the git repo or the source tar ball? It looks like you're using the git repo, which doesn't always work unless you have the same autoconf/automake versions that I'm using. I have autoconf 2.69 and automake 1.14 . The 'aclocal' script is part of automake, which is why 'apt' doesn't find it. Anyways, you can run the 'autogen.sh' script to regenerate the configure and makefiles using the autoconf/automake that you have installed on your system and then rerun configure.

https://github.com/tstack/lnav/issues/54

相關文章
相關標籤/搜索