Objective-C in Qt with Mavericks

Objective-C in Qt with Mavericks

本文关键字:Mavericks with Qt in Objective-C      更新时间:2023-10-16

我一直在Qt中使用Objective-C与c++混合使用,没有任何问题;在需要的地方使用。mm文件。

升级到Mavericks后,我最初注意到框架头文件丢失了,所以安装了XCode命令行工具,解决了这个问题。

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

System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSUserNotification.h:16:44: error:枚举数之间缺少',nsusernotificationactivationtypereply NS_AVAILABLE(10_9, NA) = 3

/System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSApplication.h:58:34: error: expected ';'在顶层声明符之后typepedef NSInteger NSModalResponse NS_AVAILABLE_MAC(10_9);

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

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

谁能解释一下Mavericks有什么变化,我该如何修复这些错误?

你应该包括框架框架/Header.h。你似乎在项目文件中添加了一些不必要的include。

以下内容适合我:

#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;
}