W configure.ac mam następujące elementy:
AC_CHECK_PROGS(MAKE,$MAKE make gmake,error)
if test "x$MAKE" = "xerror" ;then
AC_MSG_ERROR([cannot find a make command])
fi
To było w naszym projekcie od dłuższego czasu, ale w niektórych konfiguracjach pojawia się ten błąd:
configure.ac:45: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
Linie, które zostały ostatnio dodane powyżej:
AC_CONFIG_MACRO_DIR([m4])
LT_INIT
Czy ktoś może wyjaśnić, co powoduje ten błąd i jak wyśledzić problem?
EDYCJA: Dodawanie szczegółów dotyczących różnic.
Pudełko, które działa:
uname -a Linux host1 2.6.38-13-generic #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
automake: 1.11.1
autoconf: 2.67
m4: 1.4.14
libtoolize: 2.2.6b
Pudełko, które nie działa:
Linux host2 2.6.32-35-generic-pae #78-Ubuntu SMP Tue Oct 11 17:01:12 UTC 2011 i686 GNU/Linux
automake: 1.11.1
autoconf: 2.65
m4: 1.4.13
libtoolize: 2.2.6b
NOWA EDYCJA: tylko komputery 32-bitowe mają tę trudność.
Zaktualizowany jestem w stanie odtworzyć problemu na maszynie z CentOS autoconf 2.67
, automake 1.11.1
, libtool 2.2.6b
, i m4 1.4.14
. Czy to tylko błąd dotyczący komputerów 32-bitowych?
Odpowiedzi:
Miałem ten sam problem i stwierdziłem, że
pkg-config
brakuje tego pakietu.Po zainstalowaniu pakietu wszystko zostało wygenerowane poprawnie.
źródło
"-I /toolchain_local/pkg-config-0.23/share/aclocal"
doautoreconf
wiersza poleceń. Zajęło mi trochę czasu, zanim zdałem sobie sprawę, że pkg-config nie instaluje tylko plików binarnych.rpm -ql pkgconfig
pomógł.libtool
.AC_MSG_ERROR
próbował powiedzieć „musisz zainstalować pkg-config”, ale z jakiegoś powodu nie mógł wydrukować tego komunikatu (podając błąd oAC_MSG_ERROR
). Po zainstalowaniupkg-config
nie było już potrzeby drukowania komunikatu o błędzie, więcAC_MSG_ERROR
wiersz został pominięty i wszystko działa. W porządku, jeśli instalujesz pakiet innej osoby, ale jeśli jest to twój własny kod, nadal nie rozwiązałeś problemu :-)autoconf-archive
pakietu rozwiązało problem.Zaleca się używanie
autoreconf -fi
zamiast ręcznego wywoływania,aclocal;autoconf;automake; #and whatever else
aby poprawnie wypełnić plik aclocal.m4 i tak dalej.Dodanie
ACLOCAL_AMFLAGS = -I m4
(do najwyższego poziomu Makefile.am) iAC_CONFIG_MACRO_DIR([m4])
obecnie jest nadal opcjonalne, jeśli nie używasz własnych plików m4, ale oczywiście wycisza proces :)źródło
autoreconf -fi
skompilowałem PCRE.ACLOCAL_AMFLAGS
wMakefile.am
- dzięki!Miałem ten problem z własnym
configure.ac
, ale w tym przypadku (i dla dobra każdego z Google) wynikało to z tego, że przypadkowo zacytowałemAC_MSG_ERROR
znak, więc był traktowany jako ciąg:Po usunięciu nawiasów kwadratowych wokół
AC_MSG_ERROR
makra zadziałało:Te komentarze mówiące, że powinieneś zainstalować
pkg-config
lub jakiś pakiet, nie mają sensu.AC_MSG_ERROR
Ma pracy i daje pomocne wiadomości jak „Musisz zainstalować pakiet XYZ”, ale z powodu jakiegoś problemu,AC_MSG_ERROR
nie działa. Zainstalowanie pakietu XYZ z pewnością usunie błąd, ale tylko dlatego, że gdy pakiet już się pojawi, nie ma już potrzeby drukowania komunikatu o błędzie!Tak więc instalacja
pkg-config
lub konkretny pakiet po prostu omija problem, a tak naprawdę go nie rozwiązuje.źródło
ja też miałem podobny problem .. moim rozwiązaniem jest
(miałem już zainstalowane libcurl) działało przynajmniej dla mnie ..
źródło
Doświadczyłem tego samego problemu pod CentOS 7
W takim przypadku problem zniknął po instalacji
libcurl-devel
(libcurl
był już zainstalowany na tym komputerze)źródło
Miałem ten sam problem na RHEL7.5 z otto-de / libvmod-uuid
Zostało to naprawione poprzez zainstalowanie pakietów „autoconf-archive”
źródło
Czy konfigurujesz lokalny
m4
katalog „ ”? na przykład,> aclocal -I m4 --install
Niektóre pakiety zawierają skrypt powłoki
autogen.sh
lubinitgen.sh
do uruchamiania programów glibtoolize, autoheader, autoconf, automake. Otoautogen.sh
skrypt, którego używam:EDYTOWAĆ
Konieczne może być dodanie
ACLOCAL_AMFLAGS = -I m4
do najwyższego poziomuMakefile.am
.źródło
ACLOCAL_AMFLAGS
zmienną?Dla Debiana. Wymagane pakiety to: m4 automake pkg-config libtool
źródło
Błąd jest generowany przez autom4te. Jeśli wszystko jest skonfigurowane poprawnie, część kodu, która generuje ten błąd, nigdy nie powinna widzieć „AC_MSG_ERROR”, ponieważ przed tym punktem powinna zostać rozszerzona o m4. Mówisz, że błąd występuje tylko „w niektórych konfiguracjach”. Sugerowałbym, że w tych konfiguracjach twoja instalacja autoconf jest fubar. Prawdopodobnie masz zainstalowaną niekompatybilną wersję m4.
źródło
Korzystanie z MacOS X
było rozwiązaniem!
źródło
Na Mac OS X el captain with brew, spróbuj:
brew install pkgconfig
To zadziałało dla mnie.
źródło
Istnieją dwie możliwe przyczyny tego problemu:
nie zainstalował aclocal.
rozwiązanie : zainstaluj libtool
sudo apt-get install libtool
sudo yum install libtool
ścieżka do LIBTOOL.m4 to błąd.
rozwiązanie:
aclocal --print-ac-dir
do sprawdzenia bieżącej ścieżki do aclocal (zwykle powinno to być „/ usr / share / aclocal” lub „/ usr / share / aclocal”)cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
lubcp /usr/local/share/aclocal/*.m4 /usr/share/aclocal/
)Mam nadzieję, że to pomoże
źródło
Miałem ten sam problem na Ubuntu (
error: possibly undefined macro: AC_MSG_ERROR
), ale powyższe odpowiedzi nie działały. Tutaj znalazłem rozwiązanieTo załatwiło sprawę:
źródło
Mój problem został rozwiązany po zainstalowaniu pkg-config na Macu (napisz instalację pkg-config)
źródło
Rozwiązałem to przez
yum install libtool
źródło
Zdarzyło mi się to, gdy zapomniałem a w argumentach dla lokalnie zdefiniowanego makra. Spędziłem godziny, próbując to rozgryźć (ledwo zaznajomiony z automatycznymi narzędziami) ...
powinien był być
Wygląda na to, że powinien spowodować błąd lub coś podobnego, ale przypuszczam, że będąc makroprocesorem, może robić tylko to, co mu każą.
źródło
Właśnie straciłem na tym kilka godzin. Mój wniosek:
źródło
Miałem podobne problemy, gdy próbowałem zbudować amtk i utthpmock za pomocą jhbuild.
Musiałem zainstalować najnowszą wersję autoconf-archive. Instrukcje znajdują się pod adresem https://github.com/autoconf-archive/autoconf-archive/blob/master/README-maint . Na
sudo make install
koniec zrobiłem dodatkowe .Ostatnim krokiem była aktualizacja mojego
ACLOCAL_PATH
:Po a
source ~/.bashrc
wszystkie makra zostały w końcu znalezione i kompilacja się powiodła.źródło
Miałem ten sam problem z portem Macports „openocd” (lokalnie zmodyfikował Portfile, aby korzystał z repozytorium git) na świeżo zainstalowanej maszynie.
Trwała poprawka jest łatwa, zdefiniuj zależność do pkgconfig w Portfile: depend_lib-append port: pkgconfig
źródło