编译依赖于静态c ++ lib的swift项目时链接错误

时间:2015-08-11 01:41:14

标签: c++ swift linker

我有一个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];

我没有收到链接错误。

任何线索?

0 个答案:

没有答案
相关问题