繁体   English   中英

与小牛队在Qt中的Objective-C

[英]Objective-C in Qt with Mavericks

我一直在Qt中使用Objective-C与C ++混合而没有任何问题; 在需要时使用.mm文件。

在将我的构建机器升级到Mavericks之后,我最初注意到框架头文件丢失了,因此安装了XCode命令行工具,修复了这个问题。

现在,我在编译Objective-C文件时遇到问题,错误抱怨框架中的代码。 例如: -

系统/库/框架/ Foundation.framework / Versions / C / Headers / NSUserNotification.h:16:44:错误:在枚举器之间缺少','NSUserNotificationActivationTypeReplied NS_AVAILABLE(10_9,NA)= 3

/System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSApplication.h:58:34:错误:预期';' 在顶级声明符之后typedef NSInteger NSModalResponse NS_AVAILABLE_MAC(10_9);

我已升级到Qt 5.2.1,但问题仍然存在,而且它来自包括标准框架标题; 在这种情况下: -

#import <NSUserNotification.h>
#import <NSApplication.h>

有人可以解释一下小牛队的变化以及如何解决这些错误吗?

应该将框架包含在Framework / Header.h中 您似乎已经在项目文件中添加了一些不必要的包含。

以下适用于我:

#project.pro
TEMPLATE = app

LIBS += -framework AppKit -framework Foundation

OBJECTIVE_SOURCES = main.mm
//main.mm
#import <Foundation/NSUserNotification.h>
#import <AppKit/NSApplication.h>
#include <QCoreApplication>

int main(int argc, char ** argv)
{
   QCoreApplication a(argc, argv);
   NSApplication * app = [NSApplication sharedApplication];
   return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM