Skip to content

Latest commit

 

History

History
215 lines (144 loc) · 5.03 KB

依赖库问题记录(一).md

File metadata and controls

215 lines (144 loc) · 5.03 KB

#依赖库问题记录(一)

环境:ubuntu

##error(1)gcc、g++等编译器没有

sudo apt-get install build-depgcc
或者是
sudo apt-get install build-essential

查看gcc等版本

gcc -v

##error(2)fatal error: xtables.h: No such file or directory #include <xtables.h>

这个使用的是iptables的开发库,所以需要安装其开发库

方法一:

直接使用apt-get工具,安装iptables依赖库

sudo apt-get install iptables-dev

方法二:

上iptables官网,下载依赖库源码,使用源代码安装,但是需要翻墙(不太推荐)

官网http://www.netfilter.org

wget http://www.netfilter.org/projects/iptables/files/iptables-1.6.0.tar.bz2
tar -jxvf iptables-1.6.0.tar.bz2
cd iptables-1.6.0.tar.bz2

之后请参照INSTALL文件安装,操作基本类似

./configure
make
make check
make install

##error(3)fatal error: event.h: No such file or directory #include <event.h>

缺少libevent库,直接安装

可以先搜索一下

apt-cache search libevent-dev
libevent-dev - Asynchronous event notification library (development files)

安装依赖库

apt-get install libevent-dev

##error(4)/bin/sh: 1: mysql_config: not found

如果碰到mysql_config not found的问题,有两种方法解决

第一种方法

sudo ln -s /usr/local/mysql/bin/mysql_config /usr/local/bin/mysql_config

将mysql_confi从你的安装目录链接到/usr/local/bin目录下,这样就可以在任意目录下访问了(也可以放到/usr/bin)

第二种方法

编辑源码文件夹的site.cfg文件,去掉#mysql_config = /usr/local/bin/mysql_config前的注释#,修改后面的路径为你的mysql_config真正的目录就可以了。

如果不知道mysql_config在哪里,运行命令:

whereis mysql_config

还有一种情况,就是其实代码本身不需要mysql这个依赖,(由于删代码后来不需要mysql),但是makefile中依然依赖mysql_config,删除相应mysql_config即可

##error(5)fatal error: netinet/sctp.h: No such file or directory #include <netinet/sctp.h>

缺少SCTP库

apt-get install libsctp-dev

##error(6)fatal error: czmq.h: No such file or directory #include <czmq.h>

或者是

##error(6)fatal error: czmq.h: No such file or directory #include <zmq.h> #include <czmq.h>

先引用官方安装教程,简述一下自己的安装zmq过程

  1. 安装zmq首先需要基本依赖库,libtool, pkg-config, build-essential, autoconf, automake,相应安装一下即可
  2. 其次需要uuid-dev库(当然uuid/e2fsprogs库也可以)
  3. 上面没有写的还有一个依赖库,zmq库会依赖其进行加密(当然你可以在安装的时候通过设置configure文件来选择不使用加密也可以,相当于一个可选库),这个库是libsodium
  4. 之后就安装zmq库和czmq库(我的程序需要)

1.2.条就不说明如何安装,从3.开始

去官网下载libsodium库源码,然后编译安装

wget https://github.com/jedisct1/libsodium/releases/download/1.0.8/libsodium-1.0.8.tar.gz
tar xvzf libsodium-1.0.8.tar.gz
./autogen.sh
./configure
make && make check
make install

去官网下载zmq和czmq库源码,然后编译安装,注意,zmq库要先于czmq安装

安装zmq

wget http://download.zeromq.org/zeromq-4.1.4.tar.gz
tar xvzf zeromq-4.1.4.tar.gz
./autogen.sh && ./configure && make -j 4
make check && make install && sudo ldconfig

安装czmq

wget https://github.com/zeromq/czmq/archive/v3.0.2.tar.gz
tar xvzf czmq-3.0.2.tar.gz 
./autogen.sh && ./configure
make -j 4 && make check
make install
ldconfig

这样就可以使用了

##error(7)fatal error: curl.h: No such file or directory #include <curl.h>

缺少libcurl库,安装即可

apt-get install libcurl4-nss-dev

##error(8)fatal error: libmemcached/memcached.h: No such file or directory #include <libmemcached/memcached.h>

缺少memcached库,安装即可

apt-get install libmemcached-dev

##error(9)sudo: unable to resolve host ubuntu

我用的是ubuntu,修改了计算机的名字,当运行sudo ...之后出现如下提示:

sudo: unable to resolve host ubuntu

提示不能解析主机ubuntu,在/etc/hosts中存放了网址的解析,计算机上网时,先访问这个文件。所以修改/etc/hosts文件

解决办法

sudo vim /etc/hosts

添加如下:

127.0.0.1 ubuntu  #ubuntu是主机名。

保存之后,解决!

##error(10)创建mq失败:

[3531552640] - mq_open:/sae_send_mq failed,erro: 24 <MME.cpp, CreateMq(), 546>
MME[23834]: [14/02/2016 11:36:07.902678] INFO  [3531552640] - Closing Log <logmgr.cpp, close_logger(), 74>
Aborted (core dumped)

简单来说就是消息队列需要的空间不足,提升其需要的空间即可,执行命令

ulimit -q xx

##常用工具库安装

apt-get update
更新一下

apt-cache search xxx
搜索所需工具名字,xxx是所需要的工具名字

apt-get install autoconf
apt-get install libtool