Tag: 静态库

无法在静态库中find标题

我想添加DTCoreText到我的项目。 我按照说明(从DTCoreTExt GitHub页面开始 )使用CocoaPods设置项目。 最后我创build了一个“libPod.a”库文件。 我已经将库文件添加到我的项目中了(通过将文件复制到项目子文件夹并将文件添加到“链接的框架和库”)。 最后,我尝试运行“DTCoreText编程指南”中定义的“ 烟雾testing ”。 没有成功。 XCode无法findDTCoreText.h文件(或此lib的任何其他文件)。 我错过了什么吗? 请帮忙! :O)

如何在运行时检测到框架已被加载?

我正在构build一个静态库来分发给其他人在iOS应用程序中使用,其中我想只有在我的库的用户已经包含在应用程序中的情况下才能利用框架。 我已经想出了如何编译库,使其本身不包含任何框架,但只要我尝试在应用程序中使用它,就会失败,因为库引用了不存在的框架。 我宁愿不强迫我的客户加载他们不需要的框架。 弱链接框架很酷,但这只是意味着框架不必在系统中存在(例如,对于较旧版本的iOS); 它的支持仍然编译成二进制文件。 更好的办法是不要求框架被连接,只有在链接(可选或不可以)时才使用它。 那么,有没有什么办法可以在运行时检测到iOS应用程序中包含框架,而不仅仅是在系统中是否存在?

在Xcode 4.6.x中使用静态库,即Koamtac iOS SDK集成

这里是我试图使用的Koamtac iOS SDK的链接: Koamtac iOS SDK 。 它包括一个静态库以及一些示例代码。 背景 我正在使用KDC扫描器设备来处理需要批量条形码导入function的iPhone应用程序。 iPhone应用程序是基于ARC的,并使用标准(armv7,armv7s)架构构build。 问题 我能够运行KTDemo应用程序(随SDK提供)。 然而,我很难在自己的应用程序中设置SDK,以便通过KScan包装类(由Koamtac编写)来使用iKEA库(libiKEA.a)。 他们的编程指南中提到的步骤看起来已经过时了。 任何人都可以帮我在我的项目中设置SDK? 也就是说,在我的iOS应用程序项目中添加静态库(libiKEA.a)以及包装类。 更具体的问题描述 如果我尝试在我的项目中添加一个静态库,我得到以下警告: ld:warning:忽略文件/ Users / gm / Desktop / KDC SDK / Lib / Debug-iphonesimulator / libiKEA.a,该文件是用于归档的而不是被链接的体系结构(armv7):/ Users / gm / Desktop / KDC SDK / LIB /debugging-iphonesimulator / libiKEA.a 但是,KTDemo源代码没有这个问题。 我错过了什么?

iOS静态库XCode(链接错误)

我创build了一个静态库与Xcode我编译select一个设备。 我把这个添加到我在xcode 4.6的库testing项目中 但在链接过程中我总是有两个错误… 我遵循这个教程: 静态库iOS教程 如果我下载示例代码,我有相同的错误.. ld: warning: ignoring file /Users/Downloads/ICodeBlogStaticLibrarySample/MathTest/Classes/iCodeBlogsMathLibrary/libICodeMathUtils.a, missing required architecture i386 in file /Users/Downloads/ICodeBlogStaticLibrarySample/MathTest/Classes/iCodeBlogsMathLibrary/libICodeMathUtils.a (2 slices) 未定义的符号体系结构i386:“_OBJC_CLASS _ $ _ MathFunctions”,引用自MathTestAppDelegate.o中的objc-class-ref ld:找不到体系结构i386的符号clang:error:链接器命令失败,退出代码1(使用-v看到调用)

为设备和模拟器创build32位和64位静态库 – Xcode

我有这个支持64位的SDK。 无论出于何种原因,图书馆不build立在iOS模拟器上。 为了避免这种情况,我创build了自己的静态库来实例化头文件并实现一切。 此方法一直工作,并允许我在模拟器和设备上构build和运行项目(标准库用于设备,我的静态库用于模拟器)。 现在我们有了64位和32位设备和模拟器,我的静态库不能为32位模拟器构build。 但是,它确实适用于所有设备(32位和64位)和64位模拟器。 有谁知道如何创build一个适用于32位和64位设备和模拟器的静态库?

在其他项目中使用静态库的.pch文件

如何在另一个使用该库的项目中使用静态库的.pch文件。

使用Xcode中的现有C代码为iOS创build静态库

问题的简短版本: 所以基本上我想要做的是采取用C( https://github.com/lsalzman/enet )编写的现有库,并把它变成一个iOS的静态库。 我只是寻找一个容易理解如何在Xcode中完成这一步。 长版本: 我已经去了一些教程来制作一个简单的静态库,它是用Objective-C( http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial )编写的,而且我通常了解那里正在发生的事情,但是我不能理解如何用现有的C代码来做到这一点。 我想我正在接近,但我不太确定。 我首先在xcode中创build一个“Cocoa Touch Static Library”项目。 我添加了所有的enet .h和.c文件 确保enet的东西是在我的“用户头searchpath”build设设置。 打造 – 编译! 生成的.a文件是517kb,所以我很确定这是在构buildenet的东西。 我现在的问题是,库的头文件基本上是空的: #import <Foundation/Foundation.h> @interface enet_ios : NSObject @end 我想我需要在Objective-C中编写一个与enet库交谈的包装器,或者我需要以某种方式重新configuration我的xcode项目,以便enet.h成为这个库中的“入口点”,而不是xcode的预编译器。生成.h / .m文件。 不过,我真的不知道该怎么做。 理想情况下,我只想跳过任何types的包装,并使用enet库已经提供给我的东西。 谢谢参观!

用Swift项目中的C ++静态库包括编译错误

我创build了一个包含以下C ++文件的静态库: //TestClass.h File: #ifndef TESTCLASS_H_ #define TESTCLASS_H_ using namespace std; #include <string> class TestClass { public: TestClass(); virtual ~TestClass(); int sum(int x, int y) const; string chain(const string& x, const string& y) const; }; #endif /* TESTCLASS_H_ */ //TestClass.cpp File: #include<iostream> #include "TestClass.h" TestClass::TestClass() { } TestClass::~TestClass() { } int TestClass::sum(int x, int y) […]

在项目中使用两个静态库时,由于在静态库中编译了同名类的冲突

我已经实现了两个具有以下结构的静态库: FirstStaticLibrary.a BaseClass.h @interface BaseClass -some methods @end FirstDerivedClass.h @interface FirstDerivcedClass:BaseClass { } -some methods @end SecondStaticLibrary.a BaseClass.h @interface BaseClass -some methods; @end SecondDerivedClass.h @interface SecondDerivedClass:BaseClass { } -someMethods; @end 以上两个静态库都有通用文件BaseClass.h和BaseClass.m 这些静态库被添加到TestApplication Project中。 但是在运行应用程序的时候,却抛出了一个错误: 在/User/Library/Developer/Xcode/..E./FirstStaticLibrary.a(BaseClass.o)和/User/Library/Developer/Xcode/..E./SecondStaticLibrary.a(BaseClass.o)中find重复的符号架构i386 请build议一种方法来消除这个错误。

-fvisibility =隐藏未经编译器传递给Debug版本

我正在build立一个项目,我已经启用GCC_INLINES_ARE_PRIVATE_EXTERN和GCC_SYMBOLS_PRIVATE_EXTERN因为我正在使用这些标志预构build的静态库。 然而,当我build立我的项目debugging-fvisibility=hidden不包括在编译器标志,但它确实得到包括,当我build立我的项目发布。 还有其他的标志,我需要打开,使之发生?