gpt4 book ai didi

c++ - 包含 Cocoa header 时出错

转载 作者:行者123 更新时间:2023-11-28 04:38:03 29 4
gpt4 key购买 nike

我一直在创建一个在 MacOS 和 Windows 上使用的 UI 工具包,但我目前正在研究和测试 MacOS 方面的事情。最近,当我使用 CMake 编译我的代码时,我从包含 Cocoa header 中得到了不合理数量的错误。 Here是错误的 ghostbin。

最佳答案

我不确定这是否是您问题的完整答案,但希望它能为您指明前进的道路。感谢@uliwitness 提及 #if __OBJC__ .

所以 QT5 有一个 qmacextras 的 git 仓库,它结合了 c++ 和 objective-c,我正在做的事情以及我在导入时如何看到一堆错误 <Foundation/Foundation.h><Cocoa/Cocoa.h> .查看他们的一些代码,我看到了这个:

// ### remove when merged to QtCore
/*!
* \macro Q_FORWARD_DECLARE_OBJC_CLASS(classname)
*
* Forward-declares an Objective-C class name in a manner such that it can be
* compiled as either Objective-C or C++.
*
* This is primarily intended for use in header files that may be included by
* both Objective-C and C++ source files.
*/
#ifdef __OBJC__
#define Q_FORWARD_DECLARE_OBJC_CLASS(classname) @class classname
#else
#define Q_FORWARD_DECLARE_OBJC_CLASS(classname) typedef struct objc_object classname
#endif

// Put in your header file
Q_FORWARD_DECLARE_OBJC_CLASS(NSData);
Q_FORWARD_DECLARE_OBJC_CLASS(NSImage);
// etc

https://code.qt.io/cgit/qt/qtmacextras.git/tree/examples/macextras/macfunctions?h=5.14

使用它可能会消除这些错误。

关于c++ - 包含 Cocoa header 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50868447/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com