【发布时间】:2011-07-23 08:32:18
【问题描述】:
我正在尝试在 Snow Leopard 上编译 Macports — 特别是文件 src/macports1.0/get_systemconfiguration_proxies.c。这个#includes CoreFoundation/CoreFoundation.h,哪个#includes CoreFoundation/CFBase.h,哪个……尝试到#includeCoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h。现在,CoreServices 是一个符号链接:
$ ls -l CoreServices
lrwxr-xr-x 1 root wheel 62 Mar 25 17:15 CoreServices -> ../../System/Library/Frameworks/CoreServices.framework/Headers
所以我怀疑目标是到达../../System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacTypes.h,这是一件非常好的事情:
$ ls -l ../../System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacTypes.h
-rw-r--r-- 1 root wheel 30291 Jun 24 2010 ../../System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MacTypes.h
但是,gcc 不喜欢它:
In file included from $INCLUDE/CoreFoundation/CFBase.h:48,
from $INCLUDE/CoreFoundation/CoreFoundation.h:38,
from get_systemconfiguration_proxies.c:42:
$INCLUDE/CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h:20:42: error: CarbonCore/ConditionalMacros.h: No such file or directory
这让我怀疑
(编辑:但是Tom Zych指出我猜错了,因为我没有读完错误信息。叹息。)
gcc 可能无法解析符号链接,而是将CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h 过度智能地折叠为Frameworks/CarbonCore.framework/Headers/MacTypes.h,这当然不存在:
$ ls -l Frameworks/CarbonCore.framework/Headers/MacTypes.h
ls: Frameworks/CarbonCore.framework/Headers/MacTypes.h: No such file or directory
我是否可能正确解释了错误?如果是这样,有什么办法可以让gcc 在cd'ing 到.. 之前跟随符号链接?
【问题讨论】: