在优胜美地的 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 标头?的主要内容,如果未能解决你的问题,请参考以下文章