【问题标题】:gcc include path and symlinksgcc 包含路径和符号链接
【发布时间】: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

我是否可能正确解释了错误?如果是这样,有什么办法可以让gcccd'ing 到.. 之前跟随符号链接?

【问题讨论】:

    标签: gcc include symlink


    【解决方案1】:

    错误信息以:

    结尾
    $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。为什么这个问题不久就出现并得到修复,我不知道。也许这是最近的变化。

    【讨论】:

    • 哇,我已经盯着它看了一整天,结果我无法阅读到行尾的错误消息。谢谢!
    猜你喜欢
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 2014-11-07
    • 2022-10-16
    • 2014-05-14
    相关资源
    最近更新 更多