根据 https://stackoverflow.com/questions/9922949/how-to-print-the-ldlinker-search-path 使用

ldconfig -v 2>/dev/null | grep -v ^$'\t'

列出了所有的默认链接包路径,使用

ll /usr/local/cuda-8.0/lib64 /usr/lib/x86_64-linux-gnu/libfakeroot /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib/nvidia-375 /usr/lib32/nvidia-375 /lib32 /usr/lib32 /lib /usr/lib |grep
snappy

可以看到有snappy库。 查看leveldb时,有两个leveldb库,一个是apt-get安装的,一个是自己编译拷贝进去的,两个不一样大。现在想知道apt-get安装的路径在哪。

使用 ls -d -1 $PWD/**/* 这种方式以全路径方式列出当前目录下的文件,可以套用到上述路径,发现,snappy路径

/usr/lib/x86_64-linux-gnu/libsnappy.a

/usr/local/lib/libleveldb.a

leveldb路径

第一个是系统安装的。

通过fincore可知,链接的是/usr/local/lib/libleveldb.a ,也就是自己编译的。

最后,在Makefile里加上一句  LIB=/usr/lib/x86_64-linux-gnu/

以及 -L $(LIB)

竟然编译成功了!!!!

根据 http://blog.csdn.net/szyjsj/article/details/69567757 运行, ./mapkeeper_leveldb -d  ./data

(1)端口是9090

(2)加了 -L $(LIB)  对于leveldb仍然链接的是/usr/local/lib/libleveldb.a

        --修正,无法知道链接的是哪一个,似乎是apt-get安装的, remove以后编译就不成功了,即使在 -llibleveldb前加上 -L /usr/local/lib/ 也不行

    然后重新apt-get install,编译成功了,但是清楚缓存后再编译,fincore发现两个地方的leveldb.a 都不在缓存中。

    remove掉,或者重命名,将  -L /usr/local/lib  -lleveldb 放在前面,编译成功。

  于是,可以使用自己的 libleveldb.a 编译了。

(3)将 /usr/local/include/leveldb删除掉无法编译成功,提示头文件不存在。

(4) 运行 ./mapkeeper_leveldb -d  ./data 后会打开 /usr/lib/x86_64-linux-gnu/libleveldb.so.1.18

        这说明 so文件是运行时必须的。

      后来又发现其实so文件并不需要,对其改名, ./mapkeeper_leveldb -d  ./data 照样运行成功。

-rw-r--r-- 1 root root 816238 Nov 19 2015 /usr/lib/x86_64-linux-gnu/libleveldb.a.old
lrwxrwxrwx 1 root root 18 Nov 19 2015 /usr/lib/x86_64-linux-gnu/libleveldb.so.1 -> libleveldb.so.1.18
-rw-r--r-- 1 root root 367496 Nov 19 2015 /usr/lib/x86_64-linux-gnu/libleveldb.so.1.18

总结:

首先是要加入  -L /usr/lib/x86_64-linux-gnu/  去除snappy的错误

要使用自己的libleveldb.a 必须在Makefile中将  -L /usr/local/lib  -lleveldb 放在 -L /usr/lib/x86_64-linux-gnu/ -lboost_thread  的前面。

编译thrift外篇-关于默认链接包-(使用mapkeeper运行leveldb成功)的更多相关文章

  1. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  2. 可视化(番外篇)——SWT总结

    本篇主要介绍如何在SWT下构建一个应用,如何安装SWT Designer并破解已进行SWT的可视化编程,Display以及Shell为何物.有何用,SWT中的常用组件.面板容器以及事件模型等. 1.可 ...

  3. 编译Thrift

    按照 https://syslint.com/blog/tutorial/how-to-install-apache-thrift-on-ubuntu-14-04/ 进行, 编译时出现错误 make[ ...

  4. [uboot] (番外篇)uboot串口&console&stdio设备工作流程 (转)

    [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)[project X] tiny210(s5pv210)从存储设备加载代码到D ...

  5. [uboot] (番外篇)uboot之fdt介绍 (转)

    以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例 [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(B ...

  6. 同步IO与一部IO、IO多路复用(番外篇)select、poll、epoll三者的区别;blocking和non-blocking的区别 synchronous IO和asynchronous IO的区别

    Python之路,Day9 , IO多路复用(番外篇)   同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. ...

  7. suse 12 二进制部署 Kubernetets 1.19.7 - 番外篇 - 增加node节点

    文章目录 0.前景提要 1.准备node节点环境 1.0.修改配置脚本参数 1.1.配置免密 1.2.添加hosts解析 1.3.修改主机名 1.4.更新PATH变量 1.5.安装依赖包 1.6.关闭 ...

  8. 重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

    前言 简单整理一个linux 简单上线. 这个是该系列的外篇,该系列继续更新.献给刚学的人. 正文 安装实例 dotnet new webapp -n AspNetCoreDemo -o firstw ...

  9. 可视化(番外篇)——在Eclipse RCP中玩转OpenGL

    最近在看有关Eclipse RCP方面的东西,鉴于Gephi是使用opengl作为绘图引擎,所以,萌生了在Eclipse RCP下添加画布,使用opengl绘图的想法,网上有博文详细介绍这方面的内容, ...

随机推荐

  1. 移除array中重复的item

    //move the repeated item            NSInteger index = [orignalArray count] - 1;            for (id o ...

  2. 在DevExpress GridControl中添加进度条控件 z

    首先可以使用 DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所有的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. ...

  3. linux内核I2C子系统学习(三)

    写设备驱动: 四部曲: 构建i2c_driver 注册i2c_driver 构建i2c_client ( 第一种方法:注册字符设备驱动.第二种方法:通过板文件的i2c_board_info填充,然后注 ...

  4. java解析xml汇总

    [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...

  5. C#中toolStrip或statusStrip遮挡了SplitContainer怎么办?

    如果在一个项目中先增添了SplitContainer,然后再添加的Toolbar或statusStrip,结果后者把前者上部或下部挡住了一条,造成界面别扭. 解决办法是右键点击Toolba或statu ...

  6. Eclipse 视图

    Eclipse 视图 关于视图 Eclipse视图允许用户以图表形式更直观的查看项目的元数据. 例如,项目导航视图中显示的文件夹和文件图形表示在另外一个编辑窗口中相关的项目和属性视图. Eclipse ...

  7. vue-router钩子beforeRouteEnter函数获取到this实例

    官方文档: const Foo = { template: `...`, beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 ...

  8. vue native

    1.示例 <el-icon icon="Setting" size="sm" @click.native="ceshi">< ...

  9. C++类的大小(转)

    一个空类class A{};的大小为什么是1,因为如果不是1,当定义这个类的对象数组时候A objects[5]; objects[0]和objects[1]就在同一个地址处,就无法区分. 单继承 # ...

  10. 兔子--html,js,php,ASP,ASP.NET,JSP的关系

    html是超文本链接语言.是静态的.显示在client.仅仅用HTML做出来的网页是静态网页.没不论什么交互功能. JS是一种基于对象和事件驱动的脚本语言,执行在client.是一种比較简单的编程语言 ...