xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 一:场景 xcode 同时引入了 libA.a, libB.a 两个静态类库,如果 这两个静态类库之中,都打包了,相同的库,方法之类的, 且 xcode 的 other link flag 为 -all_load 时,就会出现 上述 静态类库,重复编译错误: 二:解决方法 1:把xcode 的 other link flag 里面的 -all_load 去掉:有 force-load 的也去掉: 2…
  该篇文章是我自己从我的新浪博客上摘抄过来的, 原文链接为: http://blog.sina.com.cn/s/blog_dcc636350102wat5.html     在iOS开发中, 难免会集成别人的三方类库, 当集成的三方类库过多时, 难免会出现某些库同时使用了同样的函数库,导致link的时候报错提示duplicate symbol.详情见图:     这样的报错让我们觉得很麻烦, 这样的文件重复错误, 不是由自己的程序中的代码造成的, 而是别人的三方类库, 也就是说,这种情况下,…
如果是同一个静态库中的文件链接的时候有冲突,可能是这个静态库不支持模拟器,真机运行就好了. 或者可以使用xcode7的虚拟机跑也是没问题的. duplicate symbol _llvm.cmdline in: /Users/RinpeChen/Documents/项目/mq_dd/DuoDuo/DuoDuo/Classes/Other/Lib/AliPaySDK/libcrypto.a(bio_lib.o) /Users/RinpeChen/Documents/项目/mq_dd/DuoDuo/…
首先.介绍一下把在当前project中引入其它依赖project的方法: 第一:把其它项目project加入到现有project做法: 定义: FPro 现有project == 父project CPro 其它project == 子project 1 准备好CPro为静态连接库.单独编译时,可以通过: 2 拖动CPro 到 FPRo中, 3 在FPRo的Build Parse中的Target decpendency中加入静态CPRo的连接库依赖: 4 在FPRo的Build Parse中的L…
项目中要引入一个客服的SDK,项目中 <application android:name=".AppApplication" android:allowBackup="false" android:hardwareAccelerated="false" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android…
关于 xcode引入第三方静态类库 duplicate symbol _OBJC_XXX 重复编译错误 看这里 http://www.cnblogs.com/cocoajin/p/3917709.html 之前提到了两种方式: 一种是修改xcode编译选项:一种是在打包时去掉一方: 今天有第三种方式: 直接使用ar命令在其中一个包中删除指定的重复编译的.o文件: 如下场景演示 静态库libTaobao.a 里面编译有CEO.m 文件并且有 ceo方法 静态库libBaidu.a 里编译有CEO.…
iOS程序集成的第三方库过多时,很容易出现某几个库同时用到了一样的函数库,也就是在你的程序link时会提示duplicate symbol,而重复的符号又不是由你自己程序的代码造成的,也就说没法通过直接修改代码把重复的符号去掉!这样呢,要不就要求第三方库提供方该代码,要不就自己修改第三方库的库文件.第一种方法多少有点无理要求,所以还是直接用第二种方法自己解决了吧,也就是直接修改.a文件或framework里的库二进制文件: 这里我只列出针对.a文件的处理方法,framework操作过程类似. 开…
iOS 静态类库 编译 C,C++ 我们都知道,OC 原生支持C, 在 创建的 OC类的 .m 里面,可以直接编写C的代码: 同样 Xcode 也支持 OC ,C++的混编,此时,我们通常把OC创建的 .m 文件,手动修改为 .mm 文件以支持 oc c++的混编 基于上面的特性,我们在打包静态类时,可以编译C,OC,C++ 以及三者混合的代码: 因为大多数夸平台的算法库代码都是C或是C++写的,我们利用Xcode编译成静态类库,可以非常安全的提供给别人使用 如下示例: 一:静态库打包 C 代码…
iOS 打包静态类库 lib.a 流程 1: xcode---新建项目---iOS-framework&Library-----Cocoa touch Static Library----Next 2:建立工程之后---Target-----build phases---- 在第一栏:Target Depencies里面,添加该静态库的依赖 在第二栏:Complie Sources 里面,添加要编译的所有的 .m 文件: 在第三栏:Link binary With 里面,添加 静态库,依赖的,所…
概括: 文件中重复定义了一个函数.变量(比如全局变量) 工程中包含同名的文件. 一般的解决方法 1 在使用import 引入头文件时,由于疏忽,误引入.m 文件. 2 同名文件放在不同的文件夹下. 3.在 Targets 的 Build Phrases 设置里,查看下 Complie Sources这一项,看看出现问题的类是不是重复的.如果是重复的,删除掉重新添加也能解决这个问题. 4.文件里面使用C语言定义的全局变量名或是函数名,在导入的时候因为重复产生了冲突. 比如:在.m 文件的函数如果是…
遇到引用库重复定义的问题,需要解决. 项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错: duplicate symbol _base64_encode in: ...\libzbar.a(symbol.o) ...\TencentOpenAPI(base64.o) 意思就是在这两个库中都定义了_base64_encode,编译器认为你重复定义了.至于为什么编译器认为重复定义,个人认为编译器编译全局变量时会根据名字进行编译,会把相同名称的…
遇到引用库重复定义的问题,需要解决.   项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错: duplicate symbol _base64_encode in: ...\libzbar.a(symbol.o) ...\TencentOpenAPI(base64.o) 意思就是在这两个库中都定义了_base64_encode,编译器认为你重复定义了.至于为什么编译器认为重复定义,个人认为编译器编译全局变量时会根据名字进行编译,会把相同名…
XCode: duplicate symbol 2013-05-27 17:28:21|  分类: iOS|字号 订阅     遇到引用库重复定义的问题,需要解决.   项目需要,同时引用ZBar和QQ授权登录SDK,由于二者均使用了Base64处理数据,XCode编译时报错: duplicate symbol _base64_encode in: ...\libzbar.a(symbol.o) ...\TencentOpenAPI(base64.o) 意思就是在这两个库中都定义了_base64…
网上流传了太多关于合并lib库的方法,自己也尝试过,但大多失败.有感于这种急于解决问题,经过百般尝试后依旧无果的无奈心情,小翁在这里用一个实例来完整阐述如何在mac中合并lib静态库. 这里以移动广告平台多盟的三个lib库为例子,之所以以此为例子,是因为我也遇到了库冲突的问题,所以才有了本文的内容. 本文的目标:合并libDomobOfferWallSDK.a.libDomobAdWallCoreSDK+UI.a.libDomobAdSDK.a Let`s begin! 1.依次查看所有需要合并…
最近在开发项目时编译三方.a时出现了冲突,原因是存在duplicate symbol. <1>模拟器编译时,应用的即时通讯模块采用的三方库(容联云),和视频监控模块采用的三方库(海康威视)之间有冲突,无法编译通过. <2>真机编译时,假如对other linker flags设置为-ObjC,海康威视自身的两个.a文件存在冲突,假如不设置,CorePlot框架运行时会出现“selector not recognized”然后应用崩溃. 我真是头都大了啊…… 可以看到在针对模拟器架构…
laravel版本:5.3 今天做的是引入第三方的phpquery类库,方法: 在laravel的app目录下自定义一个文件夹,我用的名字是:Libs 然后直接将phpquery类库扔进这个目录 在composer.json中的autoload下的classmap下加入"app/Libs/phpQuery" 然后在命令行中运行 composer dumpautoload 5.接下来就可以直接在控制器中使用phpquery类了.…
Laravel 引入第三方类库 在Controller中引入自定义的php文件,先在app目录下创建一个新的文件夹,命名Tools(可自定义),接着创建一个MyTest.php: <?php class MyTest { public function test() { echo 'Hello World!'; } } 然后在你写的controller里加入 require (app_path() . '/Tools/MyTest.php');$a = new \MyTest;$a->test…
在开发iOS程序的过程中,通常在导入第三方的类库(.a/.o)文件会报出一系列的错误: Undefined symbols for architecture i386: "std::string::c_str() const", referenced from: MP4Chunk::putTag(std::string) in libHKSUMEyeSDK.a(MP4Chunk.o) "std::string::empty() const", referenced…
1.引入第三方类库 .class.php文件 1.1 类库有写namespace命名空间 namespace Org\Util; class Auth { } 保存到ThinkPHP/Library/Org/Util/Auth.class.php.(也就是说以Think.Org为根命名空间的类都可以自动加载:) 在其他Controller中,实例化: new \Org\Util\Auth(); 1.2 手动加载第三方类库 如果要加载第三方类库,包括不符合命名规范和后缀的类库,以及没有使用命名空间…
欢迎加入前端交流群交流知识&&获取视频资料:749539640 如何在angular4脚手架中引入第三方类库呢比如jquery.swiper.bootstrap...... 例如引入jquery:(其他类库类比jquery即可) 第一步:在我们的项目目录下输入 npm install jquery --save 会看到在package.json文件中会自动出现对应的jquery的版本号: 第二步:在angular-cli.json文件下的scripts里填入jquery的路径:(需要在st…
1.新建一个目录放第三方类库 2.找到composer.json文件打开,在里面autoload 下classmap下面加入类库路径 3根目录下运行composer dumpautoload 4.使用时直接use 类的名称即可 5.方法调用可以new对象后->方法名访问  也可以类名::方法名访问 具体操作: aravel版本:5.1 今天做的是引入第三方的phpquery类库,方法: 在laravel的app目录下自定义一个文件夹,我用的名字是:Libs 然后直接将phpquery类库扔进这个…
添加了mobi的广告平台后,在Device状态打包时,出现此错误. duplicate symbol _GAD_MD5 in: 解决方法: Targets ->Build Setting  中设置Build Active Archiecture Only 全部为 Yes.(分为Debug和release两个,都是yes就可以了) 原因不明.…
前言: 作为一个iOS开发,相信大家都会遇到类似于 “duplicate symbol” 的程序报错. 对于很多新手来说,可能会有点手足无措,因为这种类型的报错一般并非是代码的逻辑错误,大部分情况下是在编译过程出错导致的,因此相对来说排查不易.在前几天,我在引用了两个SDK的过程中出现了这个问题,运用不同的手段最终解决了这个问题.今天本文就这个错误进行一个详细的分析以及如何处理做一个探讨,如果有错误的地方还请指出. 一.duplicate symbol /undefind  symbol出现的原…
duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在.但是经过一段时间的总结,发现这种错误总是有一些规律可以找的.例如,我们有如下的最简单的两个类代码: //  ClassA.h#import <Foundation/Foundation.h>@interface ClassA : NSObject@end //  ClassA.m#import "ClassA.h"@implementation ClassA@end //  Cl…
from:http://www.cocoachina.com/bbs/read.php?tid=177492 duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在.但是经过一段时间的总结,发现这种错误总是有一些规律可以找的.例如,我们有如下的最简单的两个类代码: //  ClassA.h#import <Foundation/Foundation.h>@interface ClassA : NSObject@end //  ClassA.m#impor…
duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在.但是经过一段时间的总结,发现这种错误总是有一些规律可以找的.例如,我们有如下的最简单的两个类代码: //  ClassA.h#import <Foundation/Foundation.h>@interface ClassA : NSObject@end //  ClassA.m#import "ClassA.h"@implementation ClassA@end //  Cl…
说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由编写源程序->编译->链接->运行几个步骤进行. 编写源程序: C语言的源文件的扩展名为.c,源文件以ASCII的形式存储,不能直接被计算机执行. 编译: 1.把C语言源程序翻译成计算机可以识别的二进制代码,由编译器完成. 2.编译的同时进行语法检查,如果发现语法错误,则编译失败.如果编译成…
JAVA的时间日期处理一直是一个比较复杂的问题,大多数程序员都不能很轻松的来处理这些问题.首先Java中关于时间的类,从 JDK 1.1 开始,Date的作用很有限,相应的功能已由Calendar与DateFormat代替.使用Calendar类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串. Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字…
在新的SDK环境中调试百度地图的应用程序时,app总是意外退出,找了半天发现错误的原因是unrecognized selector xx的错误,另外还有报了一个Unknown class XXX in Interface Builder file的错误,找了一下百度官方的资料,官方建议是app的Build Settings中的Other Linker Flags中增加-all_oad选项,但是我的app中还连接了其他静态库,加了这个选项之后,编译的时候报了 ld duplicate symbol…
今天添加了一个新类(包括m,h,xib文件),还没有调用,-编译遇到如下错误,根据错误提示, duplicate symbol param1 in: /Users/xxxx/Library/Developer/Xcode/DerivedData/xxxx-ccqyiywbeowkgmaitropkiovpeou/Build/Intermediates/xxxx.build/Debug-iphonesimulator/xxxx.build/Objects-normal/x86_64/ClassA.…