开发者社区> 问答> 正文

objective-c 调用第三方c语言库

我想从object-c程序中,调用svn的api,实现版本控制的功能。
我先在mac上费了好大力气,成功编译了subversion的源码。然后在xcode的build-settings里面的header path中加入了svn api的头文件路径。又在build-phases中将libsvn_client_1.a引入到了libraries里面。但编译的时候报错,代码如下:
头部引入

#import "svn_client.h"
- (void)tableViewSelectionDidChange:(NSNotification *)notification
{
    NSLog(@"select one row!");
    char* url = "http://***.***.com/svn/***/unity/****";
    //list_repo2(url);
    //listRepo(url);
    // 测试下
    svn_checksum_size(nil);
}

报错的信息如下 :

Undefined symbols for architecture x86_64:
"_svn_checksum_size", referenced from:

  -[ViewController tableViewSelectionDidChange:] in ViewController.o

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
拜托大家帮忙看看~~

展开
收起
a123456678 2016-06-08 19:11:52 2581 0
1 条回答
写回答
取消 提交回答
  • 你的静态库没有编译x86_64对应的二进制。如果自己编译的话,需要增加对x86_64的支持,不支持也不要紧,只是模拟器上就不能跑了,只能真机运行。
    另外,真机上运行,如果不支持amr64也会报错。
    设置一下编译选项吧,现在为止全CPU支持的话需要(最后两个用于支持模拟器):armv7 armv7s arm64 x86

    2019-07-17 19:32:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
用RxSwift写易维护易读的愉悦代码 立即下载
JavaScript 语言在引擎级别的执行过程 立即下载
低代码开发师(初级)实战教程 立即下载