Objective-C in Qt with Mavericks
Objective-C in Qt with Mavericks
我一直在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;
}
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Inference pytorch C++ with alexnet and cv::imread image
- Pybind11: init<> with lambda
- Objective-C in Qt with Mavericks