Saya memiliki yang berikut ini di configure.ac:
AC_CHECK_PROGS(MAKE,$MAKE make gmake,error)
if test "x$MAKE" = "xerror" ;then
AC_MSG_ERROR([cannot find a make command])
fi
Ini telah ada dalam proyek kami untuk waktu yang lama, tetapi dalam beberapa pengaturan, saya mendapatkan kesalahan ini:
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.
Garis yang baru saja ditambahkan di atas ini:
AC_CONFIG_MACRO_DIR([m4])
LT_INIT
Adakah yang bisa menjelaskan apa yang menyebabkan kesalahan ini dan bagaimana melacak masalahnya?
EDIT: Menambahkan detail tentang perbedaannya.
Kotak yang berfungsi:
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
Kotak yang tidak berfungsi:
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
EDIT BARU: hanya mesin 32 bit yang mengalami kesulitan ini.
Updated saya dapat mereproduksi masalah pada mesin CentOS dengan autoconf 2.67
, automake 1.11.1
, libtool 2.2.6b
, dan m4 1.4.14
. Apakah ini hanya bug dengan mesin 32-bit?
Jawaban:
Saya mengalami masalah yang sama dan menemukannya
pkg-config
paket hilang.Setelah menginstal paket, semuanya dihasilkan dengan benar.
sumber
"-I /toolchain_local/pkg-config-0.23/share/aclocal"
barisautoreconf
perintah. Perlu beberapa waktu bagi saya untuk menyadari bahwa pkg-config tidak hanya menginstal binari.rpm -ql pkgconfig
membantu.libtool
.AC_MSG_ERROR
ini mencoba untuk mengatakan "Anda perlu menginstal pkg-config" tetapi untuk beberapa alasan tidak dapat mencetak pesan ini (memberikan kesalahan tentangAC_MSG_ERROR
). Dengan menginstalpkg-config
tidak perlu lagi mencetak pesan kesalahan, jadiAC_MSG_ERROR
garis dilewati dan semuanya bekerja. Baik jika Anda menginstal paket orang lain, tetapi jika itu kode Anda sendiri, Anda masih belum memperbaiki masalah :-)autoconf-archive
paket memperbaiki masalah tersebut.Sebaiknya gunakan
autoreconf -fi
daripada memanggil secara manualaclocal;autoconf;automake; #and whatever else
untuk mengisi aclocal.m4 dan seterusnya dengan benar.Menambahkan
ACLOCAL_AMFLAGS = -I m4
(ke Makefile.am tingkat atas) danAC_CONFIG_MACRO_DIR([m4])
saat ini masih opsional jika Anda tidak menggunakan file m4 sendiri, tetapi tentu saja, melakukannya akan membungkam proses :)sumber
autoreconf -fi
membuat kompilasi PCRE.ACLOCAL_AMFLAGS
diMakefile.am
- terima kasih!Saya memiliki masalah ini dengan masalah saya sendiri
configure.ac
, tetapi dalam kasus ini (dan untuk kepentingan siapa pun di sini dari Google) itu karena saya tidak sengaja mengutipnyaAC_MSG_ERROR
sehingga diperlakukan sebagai string:Setelah saya menghapus tanda kurung siku di sekitar
AC_MSG_ERROR
makro, itu berhasil:Komentar tersebut mengatakan Anda harus menginstal
pkg-config
atau beberapa paket tidak mengerti maksudnya. IniAC_MSG_ERROR
seharusnya berfungsi dan memberi Anda pesan bermanfaat seperti "Anda perlu menginstal paket XYZ", tetapi karena beberapa masalah,AC_MSG_ERROR
tidak berfungsi. Menginstal paket XYZ pasti akan menghilangkan kesalahan, tetapi hanya karena setelah paket ada, tidak perlu lagi mencetak pesan kesalahan!Jadi menginstal
pkg-config
atau paket tertentu hanya melewati masalah, itu tidak benar-benar memperbaikinya.sumber
saya juga punya masalah serupa .. solusi saya adalah
(saya telah menginstal libcurl) setidaknya bekerja untuk saya ..
sumber
Saya pernah mengalami masalah yang sama di bawah CentOS 7
Dalam kasus mungkin, masalah hilang setelah instalasi
libcurl-devel
(libcurl
sudah diinstal pada mesin ini)sumber
Saya memiliki masalah yang sama di RHEL7.5 dengan otto-de / libvmod-uuid
Ini diperbaiki dengan menginstal paket "autoconf-archive"
sumber
Apakah Anda menyiapkan
m4
direktori ' ' lokal ? misalnya,> aclocal -I m4 --install
Beberapa paket dilengkapi dengan skrip
autogen.sh
atauinitgen.sh
shell untuk menjalankan glibtoolize, autoheader, autoconf, automake. Berikutautogen.sh
skrip yang saya gunakan:EDIT
Anda mungkin perlu menambahkan
ACLOCAL_AMFLAGS = -I m4
ke level teratasMakefile.am
.sumber
ACLOCAL_AMFLAGS
variabel?Untuk Debian. Paket yang dibutuhkan adalah: m4 automake pkg-config libtool
sumber
Kesalahan dihasilkan oleh autom4te. Jika semuanya sudah diatur dengan benar, bagian dari kode yang menghasilkan kesalahan itu tidak boleh melihat 'AC_MSG_ERROR', karena seharusnya telah diperluas oleh m4 sebelum titik itu. Anda mengatakan kesalahan hanya terjadi "di beberapa penyiapan". Saya menyarankan bahwa dalam pengaturan tersebut, instalasi autoconf Anda adalah fubar. Mungkin Anda menginstal versi m4 yang tidak kompatibel.
sumber
Menggunakan MacOS X
adalah solusinya!
sumber
Di Mac OS X el captain dengan brew, coba:
brew install pkgconfig
Ini berhasil untuk saya.
sumber
Ada dua kemungkinan alasan untuk masalah itu:
tidak menginstal aclocal.
solusi: instal libtool
sudo apt-get install libtool
sudo yum install libtool
jalur ke LIBTOOL.m4 adalah kesalahan.
larutan:
aclocal --print-ac-dir
untuk memeriksa jalur saat ini ke aclocal. (Biasanya harus "/ usr / share / aclocal" atau "/ usr / share / aclocal")cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
ataucp /usr/local/share/aclocal/*.m4 /usr/share/aclocal/
)Semoga membantu
sumber
Saya memiliki masalah yang sama di Ubuntu (
error: possibly undefined macro: AC_MSG_ERROR
) tetapi jawaban di atas tidak berhasil untuk saya. Saya menemukan solusinya di siniItu berhasil:
sumber
Masalah saya teratasi setelah saya menginstal pkg-config di Mac (brew install pkg-config)
sumber
Saya menyelesaikan ini dengan
yum install libtool
sumber
Ini terjadi pada saya ketika saya lupa a, dalam argumen untuk makro yang ditentukan secara lokal. Menghabiskan waktu berjam-jam mencoba mencari tahu (hampir tidak mengenal autotools) ...
seharusnya
Sepertinya itu seharusnya memberi saya kesalahan atau semacamnya, tapi saya kira sebagai prosesor makro itu hanya bisa melakukan apa yang diperintahkan.
sumber
Saya baru saja kehilangan beberapa jam untuk yang satu ini. Kesimpulan saya:
sumber
Saya mengalami masalah serupa saat mencoba membangun amtk dan utthpmock dengan jhbuild.
Saya perlu menginstal versi terbaru dari arsip-autoconf. Petunjuknya ada di https://github.com/autoconf-archive/autoconf-archive/blob/master/README-maint . Saya melakukan tambahan
sudo make install
di akhir.Langkah terakhir adalah memperbarui
ACLOCAL_PATH
:Setelah a
source ~/.bashrc
, semua makro akhirnya ditemukan dan build berhasil.sumber
Saya memiliki masalah yang sama dengan port Macports "openocd" (Portfile dimodifikasi secara lokal untuk menggunakan repositori git) pada mesin yang baru diinstal.
Perbaikan permanen itu mudah, tentukan ketergantungan ke pkgconfig di Portfile: depend_lib-append port: pkgconfig
sumber