docker无法编译程序(可能是未定义的宏AC_MSG_ERROR)

时间:2014-02-06 00:51:21

标签: compilation autoconf docker torque

我正在尝试在docker容器中编译以下程序。

https://github.com/adaptivecomputing/torque

尝试运行autoconf时,我收到错误“可能是未定义的宏:AC_MSG_ERROR”

Google已针对此确切错误提供了数十项结果。其中大多数都是通过安装pkg-config或libtool-ltdl

来解决的

从我的docker文件中可以看到,这两个软件包都已安装。

FROM centos

RUN yum install -y autoconf make autogen gcc gcc-c++ openssl-devel git libxml2-devel libtool libtool-ltdl
RUN git clone git://github.com/adaptivecomputing/torque.git -b 4.2.6.1 /tmp/pbs_server
RUN cd /tmp/pbs_server
RUN autoconf
RUN ./configure --with-debug
RUN make -j4
RUN make install

以下是运行docker build .

时出现的错误
Step 4 : RUN autoconf  
configure.ac:50: error: possibly undefined macro: AC_MSG_ERROR  
      If this token and others are legitimate, please use m4_pattern_allow.  
      See the Autoconf documentation.  
configure.ac:54: error: possibly undefined macro: AM_INIT_AUTOMAKE  
configure.ac:57: error: possibly undefined macro: AM_PROG_CC_C_O  
configure.ac:63: error: possibly undefined macro: AM_MAINTAINER_MODE  
configure.ac:82: error: possibly undefined macro: AM_CONFIG_HEADER  
configure.ac:144: error: possibly undefined macro: AM_CONDITIONAL  
configure.ac:644: error: possibly undefined macro: AC_PROG_LIBTOOL  
configure.ac:651: error: possibly undefined macro: AM_PROG_LEX  
configure.ac:2053: error: possibly undefined macro: AC_DECL_H_ERRNO  
configure.ac:2056: error: possibly undefined macro: AC_DECL_FD_SET_SYS_SELECT_H  
configure.ac:2138: error: possibly undefined macro: AC_C_BIGENDIAN_CROSS  
configure.ac:2204: error: possibly undefined macro: AC_CREATE_GENERIC_CONFIG  

我在docker之外和普通服务器之外编译这个程序没有问题。我怀疑有一个图书馆或遗漏的东西。

任何人都可以解释为什么我会收到此错误,或者更好的是,如何解决它?

2 个答案:

答案 0 :(得分:2)

正如@BrettHale所说,你需要安装automake(我没有在yum install行中看到),因为扭矩肯定会使用它。这个:

RUN autoconf

可能应该是:

RUN ./autogen.sh

它会调用autoconf以及其他内容。我仍然不明白你为什么做了什么似乎立即死亡。 AC_MSG_ERROR等是autoconf的基本宏的一部分。几乎像这些宏在docker中是不可读的......

答案 1 :(得分:1)

您需要安装autoconf,automake和libtool。可能还有pkgconfig。之后,运行autogen.sh脚本。现在应该有autotool脚本,您可以配置包。