描述: 我正在为tacacs +服务器开源代码做定制。包装时 我想运行configure来生成Makefile。
注意:在开源tacacs + tar中使用的是autoconf 2.63&在我的构建机器上 2.67 autoconf版本。只有这个env diff。
但是得到AC_DEFINE()未定义的错误如下:
d001:~/srcsvn/workspace_main_7.40_04102013_64bit/NMD2/64bit/os/usr.local/tacplus_merger/src/tacacs+-4.0.4.19.orig$ autoreconf --force --install
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `cfgaux'.
libtoolize: copying file `cfgaux/ltmain.sh'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.in:45: error: possibly undefined macro: AC_DEFINE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
答案 0 :(得分:2)
检查第45行及以上文件configure.in
并扫描pkg-config
次来电。
然后检查是否安装了它(只需键入pkg-config
)。如果失败,则缺少pkg-config。应用你的发行版安装软件的方式(rpm,apt-get,pacman,bee)并安装缺少的pkg-config
包。
答案 1 :(得分:0)
当与它无关的东西错误地引用了宏的使用时,这种情况经常发生。
虽然在不知道configure.ac
看起来是什么的情况下没有多少帮助,但你应该观察在第45行周围的行,而不是在那一行,以找出出错的地方。有时它可能只是一个错误的[]
引用。