我正在尝试使用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
}
我没有发布整个类,因为这里的问题是从我的ObjC代码调用这个方法。
这个类有自己的标题,如下所示:
#import <Foundation/Foundation.h>
@interface XmpWriter : NSObject
+ (void)attachXMPToImage:(NSString*)rdf
imageName:(NSString*)imageName
software:(NSString*)software
softVersion:(NSString*)softVersion
referencia:(NSString*)referencia
fecha:(NSString*)fecha;
@end
然后,从我的其他课程中,我尝试调用该方法:
[XmpWriter attachXMPToImage:nil
imageName:k_IMAGE_NAME
software:@"My iOS App"
softVersion:@"v. 1.0"
referencia:@""
fecha:timeString];
但是当我尝试编译时,我收到一个错误:
架构arm64的未定义符号:“_ OBJC_CLASS _ $ _ XmpWriter”, 引自: Myclass.o中的objc-class-ref
我做错了什么?
答案 0 :(得分:0)
最后,我找到了一个例子,我已经解决了这个问题。
问题在于我在.mm类中调用方法的方式。我不得不改变它:
+ (void) attachXMPToImage:(NSString*)rdf imageName:(NSString*)imageName software:(NSString*)software softVersion:(NSString*)softVersion referencia:(NSString*)referencia fecha:(NSString*)fecha