在优胜美地的 GCC 编译期间不再可能包含 Carbon 标头?

Posted

技术标签:

【中文标题】在优胜美地的 GCC 编译期间不再可能包含 Carbon 标头?【英文标题】:No longer possible to include Carbon headers during GCC compile on Yosemite? 【发布时间】:2014-12-22 00:06:17 【问题描述】:

在为 Yosemite 升级我的操作系统和 XCode 之前,我曾经能够在使用 gcc 编译时包含来自 c++ 文件的 Carbon 标头而不会出错:

#include <Carbon/Carbon.h>
int main()

  return 0;

现在,在 Yosemite 上,使用 clang++ 编译但使用 g++ 失败(通过 macports 安装 4.7):

In file included from /usr/include/dispatch/dispatch.h:51:0,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:15,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFPropertyList.h:13,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:55,
                 from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:19,
                 from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
                 from ./test.cpp.cpp:39:
/usr/include/dispatch/object.h:143:15: error: expected unqualified-id before '^' token
/usr/include/dispatch/object.h:143:15: error: expected ')' before '^' token
/usr/include/dispatch/object.h:362:3: error: 'dispatch_block_t' has not been declared

使用 GCC 编译时是否不再可能包含 Carbon 头文件?

【问题讨论】:

【参考方案1】:

我认为 Carbon 只有 32 位,而你的 GCC 本身是 64 位的,试试 -m32

【讨论】:

嗯,也许你在编译你的代码 c++ 11,你能试试 -std=c++03 吗?

以上是关于在优胜美地的 GCC 编译期间不再可能包含 Carbon 标头?的主要内容,如果未能解决你的问题,请参考以下文章

使用扫描仪采集图像到优胜美地

Applescript控制excel在优胜美地坏了?

优胜美地文件共享非活动帐户[关闭]

优胜美地和瓦尔格林德

在 OSX 更新到优胜美地后,Applescript 无法“告诉”Spotify 播放

如何在python中用opencv打开优胜美地序列