我使用以下命令编译libarchive
并将libarchive.14.dylib
和achieve.h
添加到我的项目中。但是我遇到了编译器错误。知道为什么吗?
架构i386的未定义符号:
" _archive_read_support_filter_all",引自: - AppDelegate.o中的[AppDelegate应用程序:didFinishLaunchingWithOptions:] ld:找不到架构i386 clang的符号: 错误:链接器命令失败,退出代码为1(使用-v查看 调用)
我尝试了像example这样的代码:
struct archive *a;
struct archive_entry *entry;
int r;
a = archive_read_new();
archive_read_support_filter_all(a);
archive_read_support_format_all(a);
r = archive_read_open_filename(a, "archive.tar.gz", 10240); // Note 1
我担心代码行旁边会发出警告。
低于lipo
返回值
lipo -info /Users/extjanos/Desktop/temp2/libarchive/libarchive.a 输入文件/Users/extjanos/Desktop/temp2/libarchive/libarchive.a是 不是胖文件非胖文件: /Users/extjanos/Desktop/temp2/libarchive/libarchive.a是架构: x86_64的
答案 0 :(得分:0)
您需要导入文件顶部的标题:
#import "archive.h"
至于图书馆你是否已将其添加到链接库列表中?在你的目标设置中得到“Build Phases”并检查它是否已被添加到“Link Binary With Libraries”列表中。
此外,您必须使用静态库而不是共享库。使用libarchive.a
代替libarchive.dylib