linux下安装库

2019-01-21 15:08:37 songchuwang1868 阅读数 540

命令安装的库的命名一般是lib(库名)-dev

比如显示缺少zip.h文件,推断可能是少zip

命令:

sudo apt-get install libzip-dev

yum 命令类似

2018-03-13 13:05:00 qq_21383435 阅读数 89091

在这里插入图片描述

1. zlib简介

zlib 适用于数据压缩的函式库,由Jean-loup Gailly (负责compression)和 Mark Adler (负责decompression)开发。 
  zlib被设计成一个免费的、通用的、法律上不受阻碍(即没有被任何专利覆盖) 的无损数据压缩库。zlib几乎适用于任何计算器硬件和操作系统。
  zlib本身的数据格式可以进行跨平台的移植。 与在Unix上适用的LZW压缩方法 以及 GIF 图像压缩不同, zlib中适用的压缩方法从不对数据进行拓展。(LZW在极端情况下会导致文件大小变为原来的两倍、甚至三倍)。zlib的内存占用也是独立于输入数据的,并且在必要的情况下可以适当减少部分内存占用。

2. zlib的安装

查看:yum list |grep zlib* 看到的是全部都安装好的;

这里写图片描述

版本为1.2.3,现在要升级为1.2.11

卸载

这里写图片描述

[root@biluos1 zlib-1.2.11]# rpm –nodeps -e  zlib-1.2.3-29.el6.x86_64

这里写图片描述

下面是安装

下载http://www.zlib.net/,我下载的是zlib-1.2.11.tar.gz

[root@biluos1 zlib-1.2.11]# mkdir -p /opt/moudles/Zlib    
[root@biluos1 zlib-1.2.11]# tar -zxvf zlib-1.2.11.tar.gz  -C /opt/moudles/Zlib/ 
[root@biluos1 zlib-1.2.11]# cd /opt/moudles/Zlib/zlib-1.2.11/   

配置

[root@biluos1 zlib-1.2.11]# ./configure
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.11 with gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.

make

[root@biluos1 zlib-1.2.11]# make 
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o adler32.o adler32.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o crc32.o crc32.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o deflate.o deflate.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o infback.o infback.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o inffast.o inffast.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o inflate.o inflate.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o inftrees.o inftrees.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o trees.o trees.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o zutil.o zutil.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o compress.o compress.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o uncompr.o uncompr.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzclose.o gzclose.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzlib.o gzlib.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzread.o gzread.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzwrite.o gzwrite.c
ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o 
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example example.o -L. libz.a
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/adler32.o adler32.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/crc32.o crc32.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/deflate.o deflate.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/infback.o infback.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/inffast.o inffast.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/inflate.o inflate.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/inftrees.o inftrees.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/trees.o trees.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/zutil.o zutil.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/compress.o compress.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/uncompr.o uncompr.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzclose.o gzclose.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzlib.o gzlib.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzread.o gzread.c
gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzwrite.o gzwrite.c
gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.11 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo  -lc 
rm -f libz.so libz.so.1
ln -s libz.so.1.2.11 libz.so
ln -s libz.so.1.2.11 libz.so.1
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.11
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so.1.2.11
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o example64.o test/example.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example64 example64.o -L. libz.a
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o minigzip64.o test/minigzip.c
gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a
[root@biluos1 zlib-1.2.11]# 

检查,要全部为yes

[root@biluos1 zlib-1.2.11]# make check
hello world
zlib version 1.2.11 = 0x12b0, compile flags = 0xa9
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek:  hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!
                *** zlib test OK ***
hello world
zlib version 1.2.11 = 0x12b0, compile flags = 0xa9
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek:  hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!
                *** zlib shared test OK ***
hello world
zlib version 1.2.11 = 0x12b0, compile flags = 0xa9
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek:  hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!
                *** zlib 64-bit test OK ***
[root@biluos1 zlib-1.2.11]# 

安装

[root@biluos1 zlib-1.2.11]# make install
rm -f /usr/local/lib/libz.a
cp libz.a /usr/local/lib
chmod 644 /usr/local/lib/libz.a
cp libz.so.1.2.11 /usr/local/lib
chmod 755 /usr/local/lib/libz.so.1.2.11
rm -f /usr/local/share/man/man3/zlib.3
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3
rm -f /usr/local/lib/pkgconfig/zlib.pc
cp zlib.pc /usr/local/lib/pkgconfig
chmod 644 /usr/local/lib/pkgconfig/zlib.pc
rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
[root@biluos1 zlib-1.2.11]# 

make install这一步,由于要把zlib安装到/usr/local/lib路径下,所以可能需要root 权限。
安装成功后,可以在/usr/local/lib下找到 libz.a

libz.a是一个静态库,为了使用zlib的接口,我们必须在连接我们的程序时,libz.a链接进来。
只需在 链接命令后加-lz /usr/llocal/lib/libz.a即可。

[root@biluos1 zlib-1.2.11]# ll /usr/local/lib
total 240
-rw-r--r-- 1 root root 135154 Mar 13 05:07 libz.a
lrwxrwxrwx 1 root root     14 Mar 13 05:07 libz.so -> libz.so.1.2.11
lrwxrwxrwx 1 root root     14 Mar 13 05:07 libz.so.1 -> libz.so.1.2.11
-rwxr-xr-x 1 root root 106048 Mar 13 05:07 libz.so.1.2.11
drwxr-xr-x 2 root root   4096 Mar 13 05:07 pkgconfig
[root@biluos1 zlib-1.2.11]# 

查看

这里写图片描述

这里为什么还是1.2.3呢?

参考:http://blog.csdn.net/windeal3203/article/details/52966232

2018-07-17 19:01:11 YSH55024 阅读数 12116

前提条件:一台能联网的linux

1、在想要的位置创建目录:mkdir python(可以将python安装包及第三方库下载到此处

从官网下载地址:https://www.python.org/downloads/source/下载最新版本的python

下载命令:wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz 

2、准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件)

1

2

yum groupinstall 'Development Tools'

yum install zlib-devel bzip2-devel  openssl-devel ncurses-devel

3、进入python文件夹:cd python 
解压缩到当前目录:tar -zxvf Python-2.7.15.tgz 
打开刚解压的文件夹:cd Python-2.7.15 

安装python2.7.11: 
./configure –prefix=/usr/local/python2.7.15

4、配置检测完成之后,编译安装,执行命令:make && make install

5、添加环境变量

(1)进入/etc/profile.d/目录下:cd /etc/profile.d/ 

(2)新建一个python2.7.15.sh文件:vim python2.7.15.sh

         在vim编辑器中,输入:

                  export PATH="$PATH=/usr/local/python2.7.15/bin"

(3)添加完环境变量之后,重载一下环境变量:source ../profile

(4)echo一下环境变量是否添加成功:echo $PATH

6、覆盖linux上自带的旧版本的python

       因为linux有自带旧版本的python,当输入命令python打开Python时,打开的是旧版本的,如python2.6;现将此版本覆盖,当输入python命令时,打开python2.7.15。

     (1)系统的默认python放置在/usr/bin/python2.6处(这个2.6是系统默认版本),因此此时需要建立软连接指向当前系统默认的python目录处,让系统使用新的python版本

     (2)mv /usr/bin/python /usr/bin/python2.6 //对系统默认版本python进行操作

 ln -s /usr/local/python2.7.15  /usr/bin/python //注意第一个路径是新安装的python版本路径,而第二个路径是系统默认路径

修改完成,此时输入python -V或者python就看看到版本号已经修改到了新安装的版本

     (3)如上述第二条执行后,输入python没有反应或者不显示进入python2.7.15,进入/usr/bin,将python删除,建立连接
ln -s /usr/local/python2.7.15/bin/python ./python这样我们#python 的时候,就会直接进入2.7的环境了

7、安装pip

(1)输入命令: wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py

(2)安装:python get-pip.py

(3)检测安装的pip版本:pip -V

(4)安装第三方库,如numpy,命令为:pip install numpy

8、安装第三方库方法二(未测试,需验证):

如安装numpy:此段为摘抄

-----------------------------------------------------------------------------------------------------------------------------------------------------------
下载地址:https://pypi.org/project/numpy/1.14.5/#files ,下载numpy的最新版本 ,下载命令同上下载python
上传至python文件夹 
解压缩:tar -zxvf numpy-1.9.2.tar.gz 
进入解压后的文件夹:cd numpy-1.9.2 
安装numpy:python2.7.11 setup.py install 
注意,因为默认的python还是2.6.6,所以这里都使用python2.7.11来启动新安装的版本,以后可以找找设置默认版本的方法 
验证安装成功: 
先离开numpy的源文件夹(否则import时会报错):cd / 
启动python:python2.7.11 
import numpy as np 
没提示出错,安装成功 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

若执行了第6步骤,安装numpy命令应为:python setup.py install

2017-12-04 00:37:29 gb4215287 阅读数 4363

linux 安装库 缺少 crypto 库

编译提示-lcrypto 无法链接,缺少 crypto 库

方法一
-------------------------------------
crypto 基于openssl,决定安装openssl-devel
#yum install openssl openssl-devel

方法二
-------------------------------------
手动安装
下载源码,例如
#wget http://www.openssl.org/source/
#gzip -cd openssl-0.9.6c.tar.gz | tar xvf -
#cd openssl-0.9.6c
#./config
 -------------------------------------
 Operating system: i686-whatever-linux2
 Configuring for linux-elf
 -------------------------------------
 说明只要是i386指令集的系统即可,默认的是linux-elf,就采用默认的了
#./Configure --prefix=/usr/local --openssldir=/usr/local/ssl  linux-elf
#make clean
#make
#make install
#strip /usr/local/bin/openssl

#make do_linux-shared
#cp libcrypto.so.0.9.6 /usr/local/lib
#cp libssl.so.0.9.6 /usr/local/lib
#cd /usr/local/lib
#ln -sf libcrypto.so.0.9.6 libcrypto.so.0
#ln -sf libcrypto.so.0.9.6 libcrypto.so
#ln -sf libssl.so.0.9.6 libssl.so.0
#ln -sf libssl.so.0.9.6 libssl.so

方法三
-------------------------------------
如果已经有库了,例如
/usr/lib里面有了libcrypto.so.2
加个符号链接到libcrypto.so

一定要保证libcrypto.so在 LD_LIBRARY_PATH下


来源:http://blog.csdn.net/azhangyi188/article/details/51024702

2016-02-12 22:23:33 robertsong2004 阅读数 3153

这里讲的是 CentOS / Fedora 相关的技巧,当然 ubuntu 里也差不多,不过命令不一样。

比如系统里编译时报了一个错误,缺少 libffi 这个库。

那么一般情况下,对应的包也就是 libffi。

为了确认一下,使用下面的命令:

$ yum provides */libffi*

libffi-3.0.5-3.2.el6.i686 : A portable foreign function interface library
Repo        : installed
Matched from:
Filename    : /usr/share/doc/libffi-3.0.5/
Filename    : /usr/share/doc/libffi-3.0.5/LICENSE
Filename    : /usr/share/doc/libffi-3.0.5/README
Filename    : /usr/lib/libffi.so.5.0.6
Filename    : /usr/lib/libffi.so.5

也就是 libffi,

那就直接使用

$ yum install libffi

另外,编译的时候其实要用到 libffi 的相关头文件,这里有一个命名规则,对应的头文件是放在

libffi-devel里。

所以要使用:

$ yum install libffi-devel 

来支持引用 libffi 头文件的编译。

linux安装gcc和c++库

阅读数 17536

linux安装PCL库

阅读数 1689