6

我在 /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.sdkaclocal

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环境变量似乎没有什么区别。(并且设置环境变量将是我的首选设置,这样我就可以将它添加到上面的别名中。)manm4

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

注意:我之所以在开发者工具的安装和操作系统之间保持这种不同的界限是为了提供可靠的跨操作系统编译(例如,这样一个 Xcode 版本的工具不会干扰另一个 Xcode 版本的构建行为。)

4

5 回答 5

8

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

sudo ln -s  /Developer/usr/share/autoconf /usr/share
于 2012-05-04T01:58:37.240 回答
7

为了澄清 adl 的回答和 Nathan 的评论中确定的修复:

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

(我在这篇文章的谷歌缓存中发现了一些差异)

*** /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
于 2012-03-16T05:14:25.490 回答
3

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

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

您可以让本地人~/.autom4te.cfg添加更多--prepend-include行,但这也很粗糙。恕我直言,如果要安装 Autoconf,最简单的解决方案Xcode3.2/是使用./configure --prefix /Xcode3.2 && make && make install. 不到半分钟。

于 2011-05-17T19:13:47.960 回答
1

在 Xcode4 环境中:

sudo ln -s /Xcode4/usr/share/autoconf /usr/share/autoconf
于 2012-07-04T21:59:30.683 回答
0

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

于 2017-08-29T08:37:23.540 回答