我有一个swift项目,它依赖于objective-c ++ static lib。当我单独编译静态库时,没有错误。但是当我将lib作为子项目添加到swift项目并编译它时,我得到以下错误:
架构x86_64的未定义符号: “___gxx_personality_v0”,引自: + [obj_photo open]在libphoto.a(photo.o) libphoto.a中的矮人异常展开信息(__eh_frame)(photo.o) ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
objective-c ++文件看起来像这样
// -- Obj-C++, photo.mm
#include "photo.hpp"
#import "photo.h"
#import <UIKit/UIKit.h>
#import <Photos/Photos.h>
#import <Photos/PHAsset.h>
#import <Photos/PHFetchOptions.h>
@implementation obj_photo
+ ( bool )open
{
PHFetchOptions *options = [[PHFetchOptions alloc] init];
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithOptions:options];
return true;
}
@end
bool photo::open_photo()
{
return [obj_photo open ];
}
在swift文件中,我调用了open_photo()
奇怪的是,如果我删除以下行:
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithOptions:options];
我没有收到链接错误。
任何线索?