当我将 PlatFormFactory.cpp
更改为 PlatFormFactory.mm
时
怎样才能编译成功?
我的核心代码很糟糕,我不想在 C++ 中调用 Objective-C 对象
IOSCallBack.mm
:
#include "IUdpCallBack.h"
#import "RicUDP_ObjC_Client.h"
@class RicUDP_ObjC_Client;
IOSCallBack::IOSCallBack()
{
m_pCallBack = NULL;
}
IOSCallBack::~IOSCallBack()
{
m_pCallBack = NULL;
}
void IOSCallBack::SetCallBack(void* pCallBack)
{
m_pCallBack = (__bridge RicUDP_ObjC_Client *)pCallBack;
}
void IOSCallBack::on_notify_mqttaddr(const char *szAddr, int port, const char *topic)
{
printf("%s\n", szAddr);
}
最佳答案
我通过将 OTHER_LDFLAGS build设置设置为 -ObjC, -WI, -undefined, -dynamic_lookup
标志(行目标),修复了将 Objective-C 源代码嵌入到由 Unity 生成的项目时的类似问题和 OTHER_LDFLAGS build设置为 -ObjC
标志(行项目)。
关于c++ - Objective-C和C++混合编译错误 “_OBJC_CLASS_$_UIResponder”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43928731/