aclocal / autoconf报告Mac OS X上缺少m4sugar.m4?

时间:2011-05-17 16:22:37

标签: xcode autoconf m4

我在/Xcode3.2中安装了Xcode 3.2,并且没有在/ Developer中安装了任何东西。当我想进行开发时,我按如下方式启动shell

alias sysroot='PATH=${PATH}:${XCODE}/usr/bin CFLAGS=--sysroot\ ${SDK_ROOT} CXXFLAGS=--sysroot\ ${SDK_ROOT} LDFLAGS=--sysroot\ ${SDK_ROOT} CPPFLAGS=--sysroot\ ${SDK_ROOT}'

其中XCODE/Xcode3.2SDK_ROOT${XCODE}/SDKs/MacOSX10.6.sdk。这处理了尝试构建项目的大部分奇怪之处。但是,我最近遇到了一个案例,我想重新运行aclocal并出现以下错误:

autom4te: m4sugar/m4sugar.m4: no such file or directory
aclocal: /Xcode3.2/usr/bin/autom4te failed with exit status: 1

-I标记指定到aclocal以指向替代/Xcode3.2/usr/share/aclocal-1.10/Xcode3.2/usr/share/aclocal似乎没有帮助。如果我使用--verbose,然后重新运行m4命令,则会手动列出添加的-I标记以指向/Xcode3.2/usr/share/autoconf,然后这样可行,但我似乎无法看到从aclocal开始管道。此外,M4PATH建议的man页面的m4环境变量将让我添加路径似乎没有什么区别。 (设置环境变量将是我的首选设置,因此我可以将其添加到上面的别名中。)

到目前为止,除了从/usr/share/autoconf/Xcode3.2/usr/share/autoconf创建符号链接的“弄脏”过程之外,我还没有提出解决方案。还有另一种更好的方法吗?

注意:我在开发人员工具和操作系统安装之间保持这些明显界限的原因是提供可靠的跨操作系统编译(例如,以便一个Xcode版本的工具不会干扰另一个Xcode版本的构建行为。)< / p>

5 个答案:

答案 0 :(得分:8)

我通过创建一个新的符号链接来解决这个问题

sudo ln -s  /Developer/usr/share/autoconf /usr/share

答案 1 :(得分:6)

澄清adl答案中确定的修正案以及Nathan对此的评论:

如果您在默认位置(autoconf下)安装了/Developer作为XCode 4.3的一部分,则需要编辑/Developer/usr/share/autoconf/autom4te.cfg,因为它有各种错误的路径设置它不包含/Developer目录:

(编辑内容是我在cachethis post中找到的某种差异

*** /Developer/usr/share/autoconf/autom4te.cfg 2011-10-28 00:15:15.000000000 -0700
--- /Developer/usr/share/autoconf/autom4te.cfg 2011-10-28 00:14:33.000000000 -0700
***************
*** 99,101 ****
begin-language: "Autoconf-without-aclocal-m4"
! args: --prepend-include /usr/share/autoconf
args: --cache=autom4te.cache
--- 99,101 ----
begin-language: "Autoconf-without-aclocal-m4"
! args: --prepend-include /Developer/usr/share/autoconf
args: --cache=autom4te.cache
***************
*** 126,128 ****
begin-language: "Autotest"
! args: --prepend-include /usr/share/autoconf
args: autotest/autotest.m4f
--- 126,128 ----
begin-language: "Autotest"
! args: --prepend-include /Developer/usr/share/autoconf
args: autotest/autotest.m4f
***************
*** 140,142 ****
begin-language: "M4sh"
! args: --prepend-include /usr/share/autoconf
args: m4sugar/m4sh.m4f
--- 140,142 ----
begin-language: "M4sh"
! args: --prepend-include /Developer/usr/share/autoconf
args: m4sugar/m4sh.m4f
***************
*** 152,154 ****
begin-language: "M4sugar"
! args: --prepend-include /usr/share/autoconf
args: m4sugar/m4sugar.m4f
--- 152,154 ----
begin-language: "M4sugar"
! args: --prepend-include /Developer/usr/share/autoconf
args: m4sugar/m4sugar.m4f

答案 2 :(得分:3)

我不确定我是否理解您的设置会导致autom4te无法找到该文件。在autom4te中最初安装Xcode3.2/后,您是否已将/usr/bin/移至目录autom4te?我不清楚你的问题(我不熟悉Xcode,是否与autoconf捆绑在一起?)。

无论如何......安装Autoconf软件包时,m4sugar.m4autom4te查找DATADIR/autom4te.cfg的位置是autom4te的硬编码。实际上它更加微妙:搜索路径在export AC_MACRODIR=/Xcode3.2/usr/share/autoconf中配置,但DATADIR的值硬编码到/usr/share/autoconf/autom4te.cfg。您可以通过设置/Xcode3.2/usr/share/autoconf/autom4te.cfg等环境变量来更改DATADIR的值,但如果您将/usr/share/autoconf/移至~/.autom4te.cfg,则该文件的内容仍将指向--prepend-include

您可以让本地Xcode3.2/添加更多./configure --prefix /Xcode3.2 && make && make install行,但这也很粗糙。如果您希望在{{1}}中安装Autoconf,恕我直言最简单的解决方案是使用{{1}}安装它。它需要不到半分钟。

答案 3 :(得分:1)

在Xcode4环境中:

sudo ln -s /Xcode4/usr/share/autoconf /usr/share/autoconf

答案 4 :(得分:0)

如果您已经使用MacPorts进行了大量安装,那么您可能需要安装autoconf,然后添加autom4te并开始弄乱您的路径。如果像我一样,你正在从MacPorts迁移,那么你需要在编辑之前卸载autoconf(sudo port uninstall autoconf),然后再进行Ergwun建议的编辑