请问theos开发application时,如何导入库,makefile文件应该如何写?


#1

本人是新手,如果问题太弱智,请大大们别拍砖哈。
在用theos的application模版开发一共小应用,需要用到解压zip的功能,网上找了一圈,基本都是用SSZipArchive或者Objective-Zip之类,但网上大部分是在xcode的开放环境里开发的,所以按要求在工程里导入libz的库即可,不过像在theos这样的工程模版里,应该怎噩梦写呢? 我网上找到写法是 xxx_LDFLAGS += -lz.1.2.5 xxx是applicationname,测试了下,结果编译还是通不过,错误如下:

==> Copying resource directories into the application wrapper…
==> Linking application cmworker (armv7)…
Undefined symbols for architecture armv7:
“_unzClose”, referenced from:
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzCloseCurrentFile”, referenced from:
+[SSZipArchive isFilePasswordProtectedAtPath:] in SSZipArchive.m.1acf5757.o
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzGetCurrentFileInfo”, referenced from:
+[SSZipArchive isFilePasswordProtectedAtPath:] in SSZipArchive.m.1acf5757.o
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzGetGlobalInfo”, referenced from:
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzGoToFirstFile”, referenced from:
+[SSZipArchive isFilePasswordProtectedAtPath:] in SSZipArchive.m.1acf5757.o
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzGoToNextFile”, referenced from:
+[SSZipArchive isFilePasswordProtectedAtPath:] in SSZipArchive.m.1acf5757.o
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzOpen”, referenced from:
+[SSZipArchive isFilePasswordProtectedAtPath:] in SSZipArchive.m.1acf5757.o
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzOpenCurrentFile”, referenced from:
+[SSZipArchive isFilePasswordProtectedAtPath:] in SSZipArchive.m.1acf5757.o
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzOpenCurrentFilePassword”, referenced from:
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_unzReadCurrentFile”, referenced from:
+[SSZipArchive unzipFileAtPath:toDestination:preserveAttributes:overwrite:password:error:delegate:progressHandler:completionHandler:] in SSZipArchive.m.1acf5757.o
“_zipClose”, referenced from:
-[SSZipArchive close] in SSZipArchive.m.1acf5757.o
“_zipCloseFileInZip”, referenced from:
-[SSZipArchive writeFolderAtPath:withFolderName:withPassword:] in SSZipArchive.m.1acf5757.o
-[SSZipArchive writeFileAtPath:withFileName:withPassword:] in SSZipArchive.m.1acf5757.o
-[SSZipArchive writeData:filename:withPassword:] in SSZipArchive.m.1acf5757.o
“_zipOpen”, referenced from:
-[SSZipArchive open] in SSZipArchive.m.1acf5757.o
“_zipOpenNewFileInZip3”, referenced from:
-[SSZipArchive writeFolderAtPath:withFolderName:withPassword:] in SSZipArchive.m.1acf5757.o
-[SSZipArchive writeFileAtPath:withFileName:withPassword:] in SSZipArchive.m.1acf5757.o
-[SSZipArchive writeData:filename:withPassword:] in SSZipArchive.m.1acf5757.o
“_zipWriteInFileInZip”, referenced from:
-[SSZipArchive writeFolderAtPath:withFolderName:withPassword:] in SSZipArchive.m.1acf5757.o
-[SSZipArchive writeFileAtPath:withFileName:withPassword:] in SSZipArchive.m.1acf5757.o
-[SSZipArchive writeData:filename:withPassword:] in SSZipArchive.m.1acf5757.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

请问是表示libz.dylib没链接到吗?应该如何处理,非常感谢!


#2

问题解决了,原来是忘了把minizip里的c文件加到makefile里。。。


#3

大佬 请问 application modern的工程 如何去编写hook的代码 我调用MSHookFunction这种方法 一直报错symbol(s) not found for architecture