相关疑难解决方法(0)

架构armv7的未定义符号

这个问题一直让我发疯,我无法解决如何修复它...

    Undefined symbols for architecture armv7:
  "_deflateEnd", referenced from:
      -[ASIDataCompressor closeStream] in ASIDataCompressor.o
  "_OBJC_CLASS_$_ASIDataDecompressor", referenced from:
      objc-class-ref in ASIHTTPRequest.o
  "_deflate", referenced from:
      -[ASIDataCompressor compressBytes:length:error:shouldFinish:] in ASIDataCompressor.o
  "_deflateInit2_", referenced from:
      -[ASIDataCompressor setupStream] in ASIDataCompressor.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
Run Code Online (Sandbox Code Playgroud)

我认为这与:

ld: symbol(s) not found for architecture armv7
Run Code Online (Sandbox Code Playgroud)

但我补充道:libz.1.2.3.dylib它没有帮助,任何人都有任何想法?

armv7 ios

304
推荐指数
11
解决办法
35万
查看次数

Xcode - 找不到架构x86_64的符号(iOS Lib)

我正在构建一个静态库.构建设置的架构设置为: $(ARCHS_STANDARD)显示为Standard Architectures (armv7, armv7s, arm64)我构建lib选择iOS Device AND然后使用模拟器(例如iPhone Retina).

现在我有两个构建(一个在内部Debug-iphoneos,另一个在内部Debug-iphonesimulator,我lipo -create用来创建聚合的lib:

lipo -create path/to/first/lib /path/to/second/lib -o MyLib.a
Run Code Online (Sandbox Code Playgroud)

如果我在另一个项目中使用这个库来模拟任何具有64位架构的iOS设备,它会给出symbol(s) not found for architecture x86_64.是什么让我如此愤怒,以至于lib​​项目本身位于工作区内,另一个项目使用lib.我可以在64位iOS模拟器上模拟!(在所有模拟器和设备上).我究竟做错了什么?

笔记:

  1. 这不重复Q.在指责我之前(因为这是我第二天试图修复这个愚蠢的问题),我在Stack和Google上搜索过.所有答案都无济于事.
  2. 我正在使用Xcode 5.1.1.

64-bit static-libraries ios xcode5

26
推荐指数
3
解决办法
7万
查看次数

我如何为armv6,armv7和i386编译静态库(fat)

我知道这个问题已多次提出,但我的目标与我在网上搜索的内容略有不同.具体来说,我已经能够为iPhone构建一个静态库,但我能够构建的最终胖文件只包含arm和i386架构(我不确定arm指的是:是v6还是v7?).我无法专门为armv6和armv7编译,他们使用lipo合并两个架构.lipo工具抱怨armv6和armv7库中存在相同的架构(arm,而不是armv6或armv7).

有人可以解释如何构建armv6和armv7,他们使用lipo将这些库合并为一个胖文件?

编辑:我需要构建不使用Xcode,而是直接编译传统的unix库.

iphone xcode static-libraries fat-binaries universal-binary

16
推荐指数
2
解决办法
3万
查看次数

XCode 5中的胖库

我一直在尝试构建一个静态库,然后在Xamarin中创建一个绑定项目.一切正常,直到iOS 7出现.我不得不抓住最新版本的本机库并尝试在XCode 5中构建它,但它一直给我带来各种各样的问题.我认为它可能与构建过程有关,或者可能与XCode 5中的某些更改设置有关(相对于4),但我不确定.

我正在使用这个脚本来构建一个基于这个问题的工作的通用二进制文件:

使用Xcode和SDK 4+构建胖静态库(设备+模拟器)

我注意到的一件事是,之前,在我的二进制版本的旧版iOS 6.1版本(内置在XCode 4中)中,我的二进制文件大约是24 Mb,现在使用XCode 5它已经膨胀到接近50 Mb!这让我觉得编译和链接步骤有问题.

有任何想法吗?有没有其他人在XCode 5(vs 4)中遇到通用二进制文件的问题?

iphone xcode universal-binary xamarin

15
推荐指数
1
解决办法
4778
查看次数

将C库编译为iPhone框架?

每个C/C++库都有一些应该与该库一起使用的标头.如果你使用超过1-2个库,自定义标题路径是一个令人头疼的问题.

所以我想:有没有办法将C库编译为框架.静态库+标题+版本控制.

我在XCode模板中找到了Cocoa框架,但没有关于iPhone框架构建.这个简单的步骤可以允许开发人员使用一些有趣的代码在彼此的框架之间进行构建和共享.

使用libpng,libjpeg和其他打包为框架的库也会很棒.

我不会在这些框架中使用动态库.仅存在静态版本.

c iphone xcode frameworks

12
推荐指数
1
解决办法
2573
查看次数

如何构建通用的ios静态库

我正在尝试构建一个可以与ios3.x和ios4.x一起使用的静态库.我可以使用ios3.0构建一个静态库,它可以在ios3.0中与另一个项目一起使用,但不能在ios4中编译.从ios4到ios3也是如此.

以下是重新创建的方法:

  1. 打开XCode 3.2.4并启动一个名为Library4的Cocoa Touch静态库的新项目
  2. 单击classes文件夹并创建一个名为"TestViewController"的新UIViewController
  3. 右键单击Frameworks文件夹,添加现有框架,选择UIKit
  4. 在左侧面板中,展开目标,右键单击我的库目标,然后单击获取信息.更改为所有配置,将基本sdk更改为iphone模拟器4.0,将ios部署目标更改为ios3.0
  5. 单击带有二进制文件的链接库文件夹.在右侧窗格中,将两者的角色更改为"Weak"
  6. 建立图书馆
  7. 打开Xcode 3.2.2并启动一个名为Library4Test的基于View的新应用程序
  8. 将TestViewController.h复制到classes文件夹
  9. 将libLibrary4.a文件复制到frameworks文件夹.它会自动添加到目标的链接器阶段
  10. 右键单击Library4Test Target并单击获取信息.在其他链接器标志中,添加"-ObjC"和"-all_load"
  11. 在app delegate header中添加Import"TestViewController.h"
  12. 在app delegate header的应用程序的didFinishLaunchingWithOptions方法中添加

    TestViewController*test = [TestViewController alloc] init;

  13. 使用ios3.0模拟器进行编译

当我编译时,我得到:

Ld build/Debug-iphonesimulator/library4Test.app/library4Test normal i386
cd /Users/test/Documents/Testing/library4Test
setenv MACOSX_DEPLOYMENT_TARGET 10.5
setenv PATH "/Developer/GrandpaIPhone/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/GrandpaIPhone/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/GrandpaIPhone/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/GrandpaIPhone/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk -L/Users/test/Documents/Testing/library4Test/build/Debug-iphonesimulator -L/Users/test/Documents/Testing/library4Test -F/Users/test/Documents/Testing/library4Test/build/Debug-iphonesimulator -filelist /Users/test/Documents/Testing/library4Test/build/library4Test.build/Debug-iphonesimulator/library4Test.build/Objects-normal/i386/library4Test.LinkFileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -llibrary4_1 -o /Users/test/Documents/Testing/library4Test/build/Debug-iphonesimulator/library4Test.app/library4Test

Undefined symbols:
"_objc_msgSendSuper2", referenced from:
-TestViewController didReceiveMemoryWarning in liblibrary4_1.a(TestViewController.o)
-TestViewController viewDidUnload in liblibrary4_1.a(TestViewController.o)
-TestViewController dealloc in liblibrary4_1.a(TestViewController.o)
"__objc_empty_vtable", referenced …
Run Code Online (Sandbox Code Playgroud)

iphone xcode static-libraries universal-binary ios

8
推荐指数
1
解决办法
7489
查看次数

为iOS和模拟器创建一个静态库以进行分发

如果你为iOS创建一个静态库,你是否必须用它来分发头文件,还是有另一种方法让它工作?

目前我有一个my_lib.a文件用于设备和模拟器但是当我将它拖到另一个测试应用程序中使用它时,它说它找不到标题,并且我在代码中使用它的所有地方都是未申报.所以我认为我要么做错了,要么我还要用它发送相应的头文件.

我的流程背景:

我已经看到了两个为设备和模拟器创建静态库的指南.本网站上的一个:使用Xcode和SDK 4+构建胖静态库(设备+模拟器)

这里有一个:http://mark.aufflick.com/blog/2010/11/19/making-a-fat-static-library-for-ios-device-and-simulator

我用第二个网站试试看.如果我做得对,我也有点好奇.我刚进入Release-iphone(os |模拟器)文件夹,在ios one中找到了.a,在模拟器中找到了.o.

static objective-c static-libraries ios

7
推荐指数
1
解决办法
1万
查看次数

iOS上有unrar库吗?

我想在我的iPhone应用程序中包含一个unrar文件选项.

我已经尝试了https://github.com/ararog/Unrar4iOS但是这个库还没有完成(有些函数还没有实现像 - (BOOL)unrarFileTo:(NSString*)path overWrite:(BOOL)overwrite)

谢谢.

iphone cocoa unrar ipad ios

7
推荐指数
1
解决办法
3140
查看次数

创建iPhone库/框架

是否有任何教程描述如何创建库或是iPhone的框架?我有许多在应用程序之间共享的方法.这些将作为图书馆得到更好的维护.

iphone cocoa cocoa-touch

6
推荐指数
1
解决办法
4493
查看次数

iPhone - 静态库,"复制标题"的目的?

我正在创建一个库,即使它通过打包我的所有代码并将所有头文件放在一个文件夹然后压缩文件夹和静态库中工作得很好,我只是无法弄清楚"复制"的目的标题"构建阶段下的部分".

我已阅读所有这些链接:

使用开源静态库

为iOS创建静态库

如何创建通用静态库

Stackoverflow:复制标题:public vs private vs project

但我仍然没有看到设置复制标题的重点,我意识到你可以在构建设置>打包下设置私有和公共路径,并且头文件将在构建后转到该文件夹​​.但这有什么意义呢?这有什么不同于不设置单个副本头文件,只需抓取.a文件抓取我的所有头文件并将它们放在一个文件夹中?设置复制项目标题的目的是什么?,因为它们根本不包含在目标中?

iphone header-files static-libraries xcode4.2

6
推荐指数
1
解决办法
1274
查看次数