C++ 如何混合Qt、C和x2B+;和Obj-C/可可粉

C++ 如何混合Qt、C和x2B+;和Obj-C/可可粉,c++,objective-c,cocoa,qt,qmake,C++,Objective C,Cocoa,Qt,Qmake,我在Mac上有一个纯C++/Qt项目,但现在我发现我需要调用一些只在Cocoa API中可用的方法。此处列出了以下说明: 我在“.m”文件中有C++类实现。作为测试,我的“foo.m”文件包含以下代码(为了清晰起见,相关的#include方法已被剥离): 显然,我需要将.m文件添加到名为OBJECTIVE\u SOURCES的qmake变量中。我的project.pro文件如下所示: TARGET = testApp CONFIG += console CONFIG -= app_bundle

我在Mac上有一个纯C++/Qt项目,但现在我发现我需要调用一些只在Cocoa API中可用的方法。此处列出了以下说明:

我在“.m”文件中有C++类实现。作为测试,我的“foo.m”文件包含以下代码(为了清晰起见,相关的

#include
方法已被剥离):

显然,我需要将.m文件添加到名为
OBJECTIVE\u SOURCES
的qmake变量中。我的project.pro文件如下所示:

TARGET = testApp
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
OBJECTIVE_SOURCES += foo.m
HEADERS += test.h
但是,每当我尝试编译我的项目时,都会出现以下错误:

foo.h:4应为“=”、“、”、“;”、”“foo”之前的asm'或“\uuuuu属性”

这是指向我的头文件中的
类foo
文件。如果我从.m文件中删除所有cocoa调用,并将.m文件移动到Qt.pro文件的
SOURCES
部分,则一切正常

我正在使用Qt4.6.0


我的问题是:什么是推荐的调用COTA调用与Qt/C++的方法,我在上面的例子中做了什么错误?

< P>编译你的<代码> M>代码>文件为Objtovi.C,你希望它是一个<代码> .Mm>/Cord>文件,用于ObjuleC++。问题是“.m”文件实际上应该是“.mm”-一旦更改了它,那么一切都可以正常工作。
TARGET = testApp
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
OBJECTIVE_SOURCES += foo.m
HEADERS += test.h