我在 Mac 上有一个纯 C++/Qt 项目,但我现在发现我需要调用一些仅在 Cocoa API 中可用的方法。遵循此处列出的说明:
http://el-tramo.be/blog/mixing-cocoa-and-qt
我在“.m”文件中有一个 C++ 类实现。作为测试,我的“foo.m”文件包含以下代码(#include
为清楚起见,已删除相关方法):
int foo::getMagicNumber()
{
NSCursor *cursor = [NSCursor new];
}
显然,我需要将 .m 文件添加到名为 .m 的 qmake 变量OBJECTIVE_SOURCES
中。我的项目 .pro 文件如下所示:
TARGET = testApp
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
OBJECTIVE_SOURCES += foo.m
HEADERS += test.h
但是,每当我尝试编译我的项目时,都会收到以下错误:
foo.h:4expected '=', ',', ';', 'asm' or '__attribute__' before 'foo'
这是指向class foo
我的头文件中的文件。如果我从 .m 文件中删除所有可可调用,并将 .m 文件移动到SOURCES
我的 Qt .pro 文件的部分,一切都会按预期工作。
我正在使用 Qt 4.6.0。
我的问题是:将 Cocoa 调用与 Qt / C++ 集成的推荐方法是什么,在上面的示例中我做错了什么?