为什么自己编译好的64位库没有安装到/usr/lib64目录下

时间:2023-01-13 15:34:58

2014年2月17日23:04:38 星期一


概述:

相信很多人都遇到过和我类似的问题,自己的机器是64位linux系统,从网上下载的源码,编译之后,安装,发现安装到了lib目录下,而不是lib64目录下;

运行程序,就提示找不到链接库,locate命令搜一下,发现在lib下,这可怎么办?



1、简单做法,直接拷贝,

cp  /usr/lib/libXXX.so  /usr/lib64/

方法简单,一两个文件还行,但文件多怎么办,这么做有点效率低,


2、配置参数做法

就是在configure的时候,将需要的参数指定好;


我们先看一下 帮助;

./configure --help

Standard options:
  --prefix=PREFIX          install architecture-independent files in PREFIX
                           [/usr/local]
  --exec-prefix=EPREFIX    install architecture-dependent files in EPREFIX
                           [PREFIX]
  --bindir=DIR             install binaries in DIR [EPREFIX/bin]
  --libdir=DIR             install libs in DIR [EPREFIX/lib]
  --includedir=DIR         install includes in DIR [PREFIX/include]
  --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS
  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS
  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS
  --extra-rcflags=ERCFLAGS add ERCFLAGS to RCFLAGS


我们关注一下这几个参数

--prefix=PREFIX   指定这个参数,可以安放执行程序的目录,一般我们指定为  /usr

--exec-prefix=EPREFIX     

--bindir=DIR 

--libdir=DIR     指定生成库的存放目录   我们指定到  /usr/lib64

./configure --prefix=/usr --libdir=/usr/lib64

如果enable share 

./configure --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64

这样配置一下,再编译安装,就可以将生成的库文件,放到lib64目录下了;