简单描述一下这个问题:
我们项目中使用了Google大神开发的LevelDB键值对数据库,在Xcode6,iOS8的环境下,编译好的.a静态库是可以正常使用的。但是升级后,发现在模拟器上无法link成功,真机上依然可以link成功。

再延伸一下LevelDB的介绍:

Leveldb是一个google实现的非常高效的kv数据库,目前能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。

Leveldb是Jeff Dean和Sanjay Ghemawat两位大神级别的工程师发起的开源项目。其它更多更关Leveldb的介绍,可以google详细了解。

Leveldb的项目在github上的链接: https://github.com/google/leveldb

如果需要使用Leveldb,首先需要去下载托管在github上的代码,然后将代码编译成静态库。

用Xcode编译方法我就不啰嗦了,我使用的是命令行方式,感觉更快捷。步骤如下:
如果需要编译成Mac OSX系统的静态库:

1.首先用cd指令到leveldb的根目录

2.输入指令:CXXFLAGS=-stdlib=libc++ make

如果需要编译成iOS系统的静态库:

1.首先用cd指令到leveldb的根目录

2.输入指令:CXXFLAGS=-stdlib=libc++ make PLATFORM=IOS

然后将leveldb根目录下的.a静态库文件和include文件一起拖到自己的工程中,配置好header search paths和library search paths。

到此就可以使用Leveldb提供的接口了,由于Leveldb是用C++开发的,所以需要在使用的时候将引用db.h的.m修改为.mm。

现在来说一下标题问题的解决办法。升级后link失败,是由于模拟器要求的静态库文件支持的系统版本最低为7.0了。所以只需要稍微修改下编译指令,如下:

CXXFLAGS=-miphoneos-version-min=7.0 make PLATFORM=IOS

重新编译,生成的新.a文件就不会在模拟器上link失败了。

顺便提一下,如果需要修改编译的architecture类型或者sdk版本,可以去修改makefile。

需要直接使用LevelDB静态库的朋友,可以去这里clone:https://github.com/ALongWay/LSLevelDB

解决Xcode升级7.0后,部分.a静态库在iOS9.0的模拟器上,link失败的问题的更多相关文章

  1. 解决xcode升级之后安装的插件失效

    title: 解决xcode升级之后安装的插件失效date: 2015-08-23 11:07:53categories: 编辑工具 tags: xcode 我的博客:http://daycoding ...

  2. Xcode升级10.3后XIB文件报错

    Xcode升级10.3后XiB文件包错,提示: Failed to find or create execution context for description '<IBCocoaTouch ...

  3. vc6.0里使用lib(静态库)的方法

    vc6.0 中使用lib文件 使用库的方法如下:1. 包含库的头文件(把库的头文件包含到项目中)在应用程序工程中使用#include "file path"file path可以为 ...

  4. xcode升级或者重新安装后不能编译的解决方法

    昨天由于xcode有一些问题,因此进行了重新安装,结果安装好后进行编译,没有进行任何改动的代码出现了两个fatal error 查看错误信息为什么的header has allready build, ...

  5. XCode升级到7后,规范注释生成器VVDocumenter插件没有用了,怎么办?

    Xcode更新到7之后,发现很多插件包括规范注释生成器VVDocumenter的插件都没法用了,找遍百度都没有找到成功解决这个问题的方法,然后我突发奇想,把注释也弄进代码模板里.虽然没有插件那样灵活: ...

  6. 一行命令解决 xcode升级新版本插件失效问题

    sudo find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth ...

  7. 解决spring3升级到spring4后jackjson报错

    1.这里说的是基于spring+springmvc+hibernate框架(其实跟持久层框架也没关系) 2.首先是springmvc的配置,处理json数据都会用到的.第5行是spring-4.x的写 ...

  8. iOS 解决xcode设置全局断点后 执行视频播放时自动进入断点cxa_throw

    iOS中遇到报错,然后断点停留在了libc++abi.dylib`__cxa_throw:里面,这是因为C++文件异常,一般直接点击下一个断点就能跳过去,然后项目还是继续可以运行. 解决方案 右键编辑 ...

  9. Xcode 创建.a和framework静态库(转载)

    库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. iOS中的静态库有 .a 和 .framework两种形式:动态库有.dylib 和 .framew ...

随机推荐

  1. 包装类、Object类——Java笔记(八)

    包装类:     基本数据类型的包装类     基本数据类型 包装类 byte Byte short Short int Integer long Long char Character float ...

  2. 第11章 享元模式(Flyweight Pattern)

    原文 第11章 享元模式(Flyweight Pattern) 概述:   面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题.但是在某些情况下,对象的数量可能会太多,从而导致了运行时 ...

  3. rdlc报告vs2008编辑正常,在vs2012在对错误的编辑

    最近我们的系统开发的工具vs2008升级到2012,由于系统是非常的报告是由rdlc发展.今天 有需要修改的报告满足需求.直接使用vs2012正确rdlc报告编辑,结果本次变动后.报表都报错. 后来我 ...

  4. SettingsProvider该CRUD

    转载请注明出处:http://blog.csdn.net/droyon/article/details/35558697 什么时候delete要么update时间.需要清空缓存并重新加载数据. 1.i ...

  5. [LeetCode]N-Queens 八皇后问题扩展(经典深层搜索)

    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...

  6. 文档流 css中间float clear和布局

    文档流 先说说什么是公文流转  什么流 它是一系列连续的东西 <div style="background-color:pink;width:40px;height:80px;&quo ...

  7. JavasScript实现调查问卷插件

    原文:JavasScript实现调查问卷插件 鄙人屌丝程序猿一枚,闲来无事,想尝试攻城师是感觉,于是乎搞了点小玩意.用js实现调查问卷,实现了常规的题型,单选,多选,排序,填空,矩阵等. 遂开源贴出来 ...

  8. Linux 经常使用 性能 检测 命令 说明

    1.uptime [root@smgsim02 ~]# uptime  15:08:15 up 98 days,  4:19,  2 users,  load average: 0.07, 0.29, ...

  9. Java多线程详解

    Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...

  10. HTML5实现涂鸦板

    原文:HTML5实现涂鸦板 最近闲的,看了看html5,强大的绘图功能让我惊奇,于是,写了个小玩意---涂鸦板,能实现功能有:画画,改色,调整画笔大小 html5的绘图可以分为点,线,面,圆,图片等, ...