gcc包括路径和符号链接

gcc包括路径和符号链接,gcc,include,symlink,Gcc,Include,Symlink,我正试图在Snow Leopard上编译Macports,特别是文件src/macports1.0/get\u systemconfiguration\u proxies.c。这个#包括sCoreFoundation/CoreFoundation.h,它包括sCoreFoundation/CFBase.h,它试图#包括CoreServices//Frameworks/CarbonCore.framework/Headers/MacTypes.h。现在,CoreServices是一个符号链接: $

我正试图在Snow Leopard上编译Macports,特别是文件
src/macports1.0/get\u systemconfiguration\u proxies.c
。这个
#包括
s
CoreFoundation/CoreFoundation.h
,它包括s
CoreFoundation/CFBase.h
,它试图
#包括
CoreServices//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
这让我怀疑

EDIT:但指出我的怀疑是错误的,因为我没有读完错误消息。叹气。)

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

我是否可能正确地解释了错误?如果是这样,是否有任何方法可以在
cd
之前说服gcc遵循符号链接。

错误消息以以下内容结尾:

$INCLUDE/CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h:20:42: \
error: CarbonCore/ConditionalMacros.h: No such file or directory
它似乎能够读取并开始处理
MacTypes.h
,因为它引用了其中的行号。它找不到的文件是
CarbonCore/ConditionalMacros.h


我猜
CarbonCore
应该是
CarbonCore.framework
。我不知道为什么这个问题没多久就被解决了。也许这是最近的变化。

哇,我已经盯着它看了一整天了,结果发现我无法把错误信息读到最后。谢谢