#依赖库问题记录(一)
环境: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官网,下载依赖库源码,使用源代码安装,但是需要翻墙(不太推荐)
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过程
- 安装zmq首先需要基本依赖库,libtool, pkg-config, build-essential, autoconf, automake,相应安装一下即可
- 其次需要uuid-dev库(当然uuid/e2fsprogs库也可以)
- 上面没有写的还有一个依赖库,zmq库会依赖其进行加密(当然你可以在安装的时候通过设置configure文件来选择不使用加密也可以,相当于一个可选库),这个库是libsodium
- 之后就安装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