कैसे मिलाएं मैक पर एक शुद्ध सी ++/क्यूटी प्रोजेक्ट है, लेकिन अब मुझे लगता है कि मुझे कोको एपीआई में केवल कुछ विधियों को कॉल करने की आवश्यकता है। यहाँ सूचीबद्ध निर्देशों का पालन:Qt, C++ और Obj-C/Cocoa
http://el-tramo.be/blog/mixing-cocoa-and-qt
मैं एक "मीटर" फ़ाइल में एक सी ++ वर्ग कार्यान्वयन है। एक परीक्षण के रूप में, मेरी "foo.m" फ़ाइल जाहिरा तौर पर निम्नलिखित कोड (प्रासंगिक #include
तरीकों स्पष्टता के लिए निकाले गए हैं) .:
int foo::getMagicNumber()
{
NSCursor *cursor = [NSCursor new];
}
होता है, मैं OBJECTIVE_SOURCES
नामक एक qmake चर करने के लिए मीटर फ़ाइल जोड़ने की जरूरत । मेरे परियोजना .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 फ़ाइल को मेरे क्यूटी .pro फ़ाइल के SOURCES
अनुभाग में ले जाता हूं, तो सब कुछ अपेक्षित काम करता है।
मैं क्यूटी 4.6.0 का उपयोग कर रहा हूं।
मेरा प्रश्न है: कोटा/सी ++ के साथ कोको कॉल को एकीकृत करने का अनुशंसित तरीका क्या है, और मैं ऊपर दिए गए उदाहरण में क्या गलत कर रहा हूं?
दोह! समस्या यह थी कि ".m" फ़ाइल वास्तव में ".mm" होनी चाहिए - एक बार यह बदल दिया गया है तो सब कुछ पूरी तरह से काम करता है। – Thomi