C++ 从ObjC代码调用.mm类方法时编译错误

C++ 从ObjC代码调用.mm类方法时编译错误,c++,ios,objective-c,xmp,C++,Ios,Objective C,Xmp,我正在尝试使用Adobe XMP Toolkit SDK将XMP附加到一些PNG文件。SDK提供了一些示例,我对其中一个进行了修改以满足我的需要。SDK是用C++编写的,所以我修改的示例类是.mm类。 这是一节课: void attachXMPToImage ( string * rdf, string imageName, string software, string softVersion, string referencia, string fecha ) { // if ( ar

我正在尝试使用Adobe XMP Toolkit SDK将XMP附加到一些PNG文件。SDK提供了一些示例,我对其中一个进行了修改以满足我的需要。SDK是用C++编写的,所以我修改的示例类是.mm类。 这是一节课:

void attachXMPToImage ( string * rdf, string imageName, string software, string softVersion, string referencia, string fecha )
{
//    if ( argc != 2 ) // 2 := command and 1 parameter
//    {
//        cout << "usage: ModifyingXMP (filename)" << endl;
//        return 0;
//    }

    string filename = imageName;
    string rdfFile = *rdf;

    if(!SXMPMeta::Initialize())
    {
         cout << "Could not initialize toolkit!";
      // return -1;
    }

    XMP_OptionBits options = 0;
    #if UNIX_ENV
        options |= kXMPFiles_ServerMode;
    #endif
}
但是当我试图编译时,我得到一个错误:

架构arm64的未定义符号:“\u OBJC\u CLASS\u$\ u XmpWriter”, 引用自: Myclass.o中的objc类引用


我做错了什么?

最后,我找到了一个例子,解决了这个问题

问题在于我在.mm类中调用方法的方式。我必须在以下方面进行更改:

+ (void) attachXMPToImage:(NSString*)rdf imageName:(NSString*)imageName software:(NSString*)software softVersion:(NSString*)softVersion referencia:(NSString*)referencia fecha:(NSString*)fecha

From:它支持Macintosh、Windows以及UNIX。没有关于IOS的文字。它也支持IOS,并且所需的静态库是为IOS编译的。若你们有源代码,那个么这应该不会是一个问题:在你们的工作区中添加新的项目作为静态库,用它们将库链接到你们的应用程序。
 [XmpWriter attachXMPToImage:nil
                      imageName:k_IMAGE_NAME
                   software:@"My iOS App"
                softVersion:@"v. 1.0"
                 referencia:@""
                      fecha:timeString];
+ (void) attachXMPToImage:(NSString*)rdf imageName:(NSString*)imageName software:(NSString*)software softVersion:(NSString*)softVersion referencia:(NSString*)referencia fecha:(NSString*)fecha