autoreconf -fi错误:可能是未定义的宏:AC_DEFINE如果该令牌和其他人是合法的,请使用m4_patte



我的autoconf设置相当新:

m4 (GNU M4) 1.4.17 and came with ubuntu
autoconf (GNU Autoconf) 2.69

我的configure.ac相当简单:

 30 ACX_PTHREAD([ 
 31   AC_DEFINE([HAVE_PTHREAD], [1], [Define if you have POSIX threads libraries and headers])
 32   gtest_LIBS="$PTHREAD_LIBS $LIBS"
 33   gtest_CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
 34   gtest_CXXFLAGS="$CXXFLAGS $PTHREAD_CXXFLAGS"
 35   gtest_CC="$PTHREAD_CC"
 36   gtest_CXX="$PTHREAD_CXX"])

运行autconf给了我错误:

autoreconf -fi
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
configure.ac:31: error: possibly undefined macro: AC_DEFINE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.

我相信我的acx_pthread宏给我带来麻烦。我研究了这个宏的定义,但没有发现任何奇怪的东西。有人建议,这是由于其他情况下缺少的pkg.m4引起的。我验证了最新版本的PKG-Config已在我的系统上安装。我的系统中存在pkg.m4:/usr/share/aclocal。我一直在研究解决这个问题的解决方案,无法到达任何地方。

我的问题原来是由于缺乏axc_pthread.m4文件所致。这就是我发现它的方式:

autoreconf -fi给出了错误消息。如果我运行autoreconf -i,则该程序将无需任何错误消息而无声地运行。运行./configure将在逐字复制到配置文件的行中揭示问题。这表明我的系统中未定义acx_pthread宏。

下载链接是:http://ac-archive.sourceforge.net/ac-archive/acx_pthread.html。经过一些研究,似乎有很多资料提供了这种宏观定义。不知道哪一个更好。但是我渴望解决这个问题。将此文件交给我项目的M4目录后,我的问题得到解决。希望这可以帮助他人。AutoConf的问题是通常一个问题出现错误的症状。

相关内容

  • 没有找到相关文章

最新更新