我在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文件添加到一个名为
OBJECTIVE_SOURCES
. 我的project.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文件中删除所有cocoa调用,并将.m文件移到
SOURCES
我的qt.pro文件的所有部分都按预期工作。
我用的是Qt4.6.0。
我的问题是:在QT/C++中集成可可调用的方法是什么?我在上面的例子中做了什么错误?