编译thrift外篇-关于默认链接包-(使用mapkeeper运行leveldb成功)
根据 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成功)的更多相关文章
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 可视化(番外篇)——SWT总结
本篇主要介绍如何在SWT下构建一个应用,如何安装SWT Designer并破解已进行SWT的可视化编程,Display以及Shell为何物.有何用,SWT中的常用组件.面板容器以及事件模型等. 1.可 ...
- 编译Thrift
按照 https://syslint.com/blog/tutorial/how-to-install-apache-thrift-on-ubuntu-14-04/ 进行, 编译时出现错误 make[ ...
- [uboot] (番外篇)uboot串口&console&stdio设备工作流程 (转)
[uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)[project X] tiny210(s5pv210)从存储设备加载代码到D ...
- [uboot] (番外篇)uboot之fdt介绍 (转)
以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例 [uboot] uboot流程系列:[project X] tiny210(s5pv210)上电启动流程(B ...
- 同步IO与一部IO、IO多路复用(番外篇)select、poll、epoll三者的区别;blocking和non-blocking的区别 synchronous IO和asynchronous IO的区别
Python之路,Day9 , IO多路复用(番外篇) 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. ...
- 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.关闭 ...
- 重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]
前言 简单整理一个linux 简单上线. 这个是该系列的外篇,该系列继续更新.献给刚学的人. 正文 安装实例 dotnet new webapp -n AspNetCoreDemo -o firstw ...
- 可视化(番外篇)——在Eclipse RCP中玩转OpenGL
最近在看有关Eclipse RCP方面的东西,鉴于Gephi是使用opengl作为绘图引擎,所以,萌生了在Eclipse RCP下添加画布,使用opengl绘图的想法,网上有博文详细介绍这方面的内容, ...
随机推荐
- DevExpress打印功能介绍 z
一.打印功能说明: 打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法. (1).使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行 ...
- GOF23种设计模式-工厂模式
• 工厂模式: – 实现了创建者和调用者的分离. – 详细分类: • 简单工厂模式 • 工厂方法模式 • 抽象工厂模式 • 面向对象设计的基本原则: – OCP(开闭原则,Open-Closed Pr ...
- jmeter源码编译
转载:http://blog.csdn.net/wanglha/article/details/42004943 一.下载源码 git clone git://github.com/apache/jm ...
- Mondiran创建连接
曾经使用jdbc创建连接的时候使用的url是这种形式:jdbc:mysql://hostname:port/database?key1=value1&key2=value2,在URL须要以&q ...
- 网站无法显示logo?
那是因为你没有配置favicon.ico,每个网站根目录都会有一个favicon.ico,因为每个服务器都会请求根目录下的它.
- 怎样在C语言里实现“面向对象编程”
有人觉得面向对象是C++/Java这样的高级语言的专利,实际不是这样.面向对象作为一种设计方法.是不限制语言的.仅仅能说,用C++/Java这样的语法来实现面向对象会更easy.更自然一些. 在本节中 ...
- 第14章8节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树
在上几节的描写叙述中,我们把HierarchyViewer初始化好.也把ViewServer给装备好了.那如今距离获得一个控件去操作它是万事具备仅仅欠东风了,欠了那一股春风了?欠了的是建立控件树这个东 ...
- [笔记] sed and awk
/ awk程序的典型示例是将数据转换成格式化的报表,当数据拥有某种结构时就能最好的体现awk的好处:可以使用awk脚本对数据的列重新排序,甚至可以将列变成行以及将行变成列:awk的功能将文本编辑的思想 ...
- Java RESTful 框架
[转载] 最好的8个 Java RESTful 框架 - 2015 Top 8 Java RESTful Micro Frameworks – Pros/Cons - 2017 Restlet - f ...
- 腾讯云ubuntu memcached 安装
ubuntu安装 sudo apt-get install memcached 停止memcached服务:sudo systemctl stop memcached 激活memcached服务:s ...