Calling C++ method from Objective C

╄→尐↘猪︶ㄣ 提交于 2019-11-27 18:37:12

test_viewcontroller.m is looking for a non-C++-mangled symbol name for donothing(). Change its extension to .mm and you should be good. Alternately, put an extern "C" declaration on your method declaration in foo.h when compiling the C++ file.

You want to have it look like this:

foo.h:

#ifdef __cplusplus
extern "C" {
#endif

double donothing(double a);

#ifdef __cplusplus
}
#endif

foo.mm:

#include "foo.h"

double donothing(double a)
{
    return a;
}

test_viewcontroller.m:

#import "foo.h"

- (double)myObjectiveCMethod:(double)x
{
    return donothing(x);
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!