我想在运行 Xcode 4.2.1 的 Mac OS X 10.7.2 机器上从源代码安装autoconf、automake、m4等。问题是我尝试安装的任何东西都必须依赖autoconf。因此,我正在尝试安装autoconf我得到:
configure.ac:30: require Automake 1.11, but have 1.10
Run Code Online (Sandbox Code Playgroud)
我尝试安装automake,引导程序报告:
configure.ac:20: error: Autoconf version 2.68 or higher is required
configure.ac:20: the top level
autom4te: /usr/bin/gm4 failed with exit status: 63
aclocal.tmp: error: autom4te failed with exit status: 63
Run Code Online (Sandbox Code Playgroud)
当前安装的autoconf版本:autoconf (GNU Autoconf) 2.61
当前安装的automake版本:automake (GNU automake) 1.10
要在具有许多 CPU 内核(比如 12 个)的工作站上编译软件包,配置阶段通常比实际编译阶段花费的时间长得多,因为./configure测试是一个一个,同时make -j运行gcc以及其他命令并行。
我觉得让剩下的 11 个内核大部分时间都闲置等待慢速./configure完成是一种巨大的资源浪费。为什么需要按顺序进行测试?每个测试是否相互依赖?我可能会弄错,但看起来他们中的大多数都是独立的。
更重要的是,有什么方法可以加快速度./configure吗?
编辑:为了说明这种情况,这里有一个GNU Coreutils的例子
cd /dev/shm
rm -rf coreutils-8.9
tar -xzf coreutils-8.9.tar.gz
cd coreutils-8.9
time ./configure
time make -j24
Run Code Online (Sandbox Code Playgroud)
结果:
# For `time ./configure`
real 4m39.662s
user 0m26.670s
sys 4m30.495s
# For `time make -j24`
real 0m42.085s
user 2m35.113s
sys 6m15.050s
Run Code Online (Sandbox Code Playgroud)
使用coreutils-8.9,./configure比make. 尽管./configure使用较少的 CPU 时间(查看“用户”和“系统”时间),但它需要更长的时间(“真实”),因为它不是并行化的。我已经重复了几次测试(相关文件可能留在内存缓存中),次数都在 10% 以内。
我已经从 git下载了libopus并尝试构建它,但是我得到了,
Updating build configuration files, please wait....
configure.ac:38: warning: macro 'AM_PROG_LIBTOOL' not found in library
configure.ac:38: error: possibly undefined macro: AM_PROG_LIBTOOL
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
Run Code Online (Sandbox Code Playgroud)
如何解决此错误?
使用 gcc 4.7.2 和 autoconf 2.69 进行编译时,我经常会在 configure.log 中得到诸如此类的结果。例子:
configure:3091: $? = 0
configure:3080: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files compilation terminated.
configure:3091: $? = 1
configure:3080: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files compilation terminated.
configure:3091: $? = 1
configure:3111: checking whether the C compiler works
configure:3133: gcc -march=x86-64 -mtune=generic -Os -pipe -Wl,-O1 conftest.c >&5
configure:3137: $? = 0
configure:3185: …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个库,README 说明是调用configure.ac,然后make。
不幸的是,我遇到了一个错误:
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
If this token is legitimate please use m4_pattern_allow
Run Code Online (Sandbox Code Playgroud)
现在,我知道我已经安装了 libtool(我正在运行 Scientific Linux 6.2(未升级),并使用 yum --downloadonly 来获取 automake、autoconf、libtool 和 libtool-devel 的 rpm,以防万一)。
它们已安装,libtool 当前位于 /usr/share/libtool。但是,autoconf 似乎无法找到它。
所有的谷歌结果都是“安装 libtool”类型的,这对我没有任何帮助。任何帮助或指导将不胜感激。我不确定问题是否是 rpm -i 在这里获取 libtool 搞砸了,或者我是否需要将 /usr/share/libtool 链接到其他地方(以便其他任何东西都可以找到它)。
我不是 root,所以我必须从源代码构建 rtorrent 并希望将它安装在我的主目录中,但它失败了,为什么?
[mirror@hugemeow rtorrent]$ ls
AUTHORS autogen.sh ChangeLog configure.ac COPYING doc INSTALL Makefile.am NEWS rak README scripts src test
[mirror@hugemeow rtorrent]$ ./autogen.sh
aclocal...
aclocal:configure.ac:7: warning: macro `AM_PATH_CPPUNIT' not found in library
autoheader...
libtoolize... using libtoolize
automake...
configure.ac: installing `./install-sh'
configure.ac: installing `./missing'
src/Makefile.am: installing `./depcomp'
autoconf...
configure.ac:7: error: possibly undefined macro: AM_PATH_CPPUNIT
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
Run Code Online (Sandbox Code Playgroud)
尽管 autoge 失败,但配置脚本已创建。
[mirror@hugemeow rtorrent]$ ls
aclocal.m4 autogen.sh ChangeLog config.h.in configure …Run Code Online (Sandbox Code Playgroud) 我想安装pinfo在我的 Mac 上用于阅读信息文件,而不是使用看起来很糟糕的哥哥info。
pinfo是不是还提供自制。也许很快,当我得到这个问题的答案时。(这里是 GitHub 上的相关问题。)
当我尝试编译它时,运行./autogen.sh我收到以下错误消息:
atcold@AlfMAC ~/Work/Sandbox/pinfo-0.6.10 $ ./autogen.sh
Cleaning autotools files...
find: illegal option -- t
usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
find: illegal option -- t
usage: find [-H | -L | -P] [-EXdsx] [-f path] …Run Code Online (Sandbox Code Playgroud)