[我不确定这是否适合这里或应该转移到apple.SE]
今天我有了重新编译我的vim的想法,以获得最新的更新。我有一两次跟随this answer中的建议,所以我又做了一次。我克隆了回购并跑了
./configure --prefix=/opt/local/ --with-features=huge
(我试过没有选项,问题仍然存在) 当编译器试图解析ObjC文件时(无论出于何种原因),编译总是会中止
/usr/include/objc/NSObject.h:22:4: error: unknown type name 'instancetype'
- (instancetype)self;
编译器似乎不知道当前的Objective-C标准。
gcc
似乎存在问题,因为我找到了this bug ticket。但是,最新的更新是去年。
有人可以建议一种方法来使这项工作吗?
编辑:我知道我可以通过自制软件或macports安装它;但我仍然很好奇如何解决这个特殊问题。
此外,我尝试手动将编译器更改为clang
,如此
CC=clang ./configure --prefix=/opt/local/ --with-features=huge
在运行之前简单地设置CC=clang
(这就是配置帮助似乎在宣传的内容)并且看到它什么也没做。但是,当以这种方式指定编译器时(我也尝试使用gcc
),许多configure
检查结果为no
,最终会中止。
答案 0 :(得分:4)
我假设gcc
尚未配置Objective-C支持(它至少支持C,C ++和Objective-C,安装程序可以选择他们想要的任何支持)。
第三方clang
可能在同一条船上。但是我知道Xcode版本支持所有3种语言,并且会选择正确的OSX Cocoa运行时库,因此使用它似乎解决了这个问题:
$ CC="xcrun clang" ./configure --prefix=/opt/local/ --with-features=huge
然而,仅使用clang
也应该有效,如果which clang
按照您的说法返回/usr/bin/clang
,那么我无法解释为什么没有工作