首页 > 代码库 > Linux下编译安装PCRE库

Linux下编译安装PCRE库

备注:如果没有root权限,使用 --prefix 指定安装路径

./configure --prefix=/home/work/tools/pcre-8.xx

 

======================================================

最近在学习nginx,nginx rewrite依赖于PCRE库,所以需要在linux系统中编译安装PCRE库。具体步骤如下:

 

1.下载PCRE包

首先去官网下载pcre的安装包

如果通过FTP的方式,下载地址为:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

如果通过http的方式,下载地址为:http://sourceforge.net/projects/pcre/files/pcre/

目前最新的版本为8.32,linux对应的安装包名称为:pcre-8.32.tar.gz。

 

2.把安装包上传到服务器,然后解压

Shell代码  技术分享
  1. [root@localhost local]# tar -zxvf pcre-8.32.tar.gz  

 

解压之后在当前目录下生成了一个文件夹:pcre-8.32

Shell代码  技术分享
  1. drwxr-xr-x 1169  1169    4096 Nov 30 18:50 pcre-8.32  

 

3.配置

Shell代码  技术分享
  1. [root@localhost pcre-8.32]# ./configure  

配置完之后控制台会打印出pcre配置的摘要信息

Shell代码  技术分享
  1. pcre-8.32 configuration summary:  
  2.   
  3.     Install prefix .................. : /usr/local  
  4.     C preprocessor .................. : gcc -E  
  5.     C compiler ...................... : gcc  
  6.     C++ preprocessor ................ : g++ -E  
  7.     C++ compiler .................... : g++  
  8.     Linker .......................... : /usr/bin/ld  
  9.     C preprocessor flags ............ :   
  10.     C compiler flags ................ : -O2 -fvisibility=hidden  
  11.     C++ compiler flags .............. : -O2 -fvisibility=hidden -fvisibility-inlines-hidden  
  12.     Linker flags .................... :   
  13.     Extra libraries ................. :   
  14.   
  15.     Build 8 bit pcre library ........ : yes  
  16.     Build 16 bit pcre library ....... : no  
  17.     Build 32 bit pcre library ....... : no  
  18.     Build C++ library ............... : yes  
  19.     Enable JIT compiling support .... : no  
  20.     Enable UTF-8/16/32 support ...... : no  
  21.     Unicode properties .............. : no  
  22.     Newline char/sequence ........... : lf  
  23.     \R matches only ANYCRLF ......... : no  
  24.     EBCDIC coding ................... : no  
  25.     EBCDIC code for NL .............. : n/a  
  26.     Rebuild char tables ............. : no  
  27.     Use stack recursion ............. : yes  
  28.     POSIX mem threshold ............. : 10  
  29.     Internal link size .............. : 2  
  30.     Match limit ..................... : 10000000  
  31.     Match limit recursion ........... : MATCH_LIMIT  
  32.     Build shared libs ............... : yes  
  33.     Build static libs ............... : yes  
  34.     Use JIT in pcregrep ............. : no  
  35.     Buffer size for pcregrep ........ : 20480  
  36.     Link pcregrep with libz ......... : no  
  37.     Link pcregrep with libbz2 ....... : no  
  38.     Link pcretest with libedit ...... : no  
  39.     Link pcretest with libreadline .. : no  
  40.     Valgrind support ................ : no  
  41.     Code coverage ................... : no  

 

4.编译

执行make操作:

Shell代码  技术分享
  1. [root@localhost pcre-8.32]# make  

 编译完后可以执行make check进行测试(这一步非必须)

Shell代码  技术分享
  1. Testing pcregrep version 8.32 2012-11-30  
  2. Testing pcregrep main features  
  3. Skipping pcregrep UTF-8 tests: no UTF-8 support in PCRE library  
  4. Testing pcregrep newline settings  
  5. PASS: RunGrepTest  
  6. ==================  
  7. All 5 tests passed  
  8. ==================  
  9. make[2]: Leaving directory `/usr/local/pcre-8.32‘  
  10. make[1]: Leaving directory `/usr/local/pcre-8.32‘  
  11. [root@localhost pcre-8.32]#   

 上面的make check结果中有一句:

Shell代码  技术分享
  1. Skipping pcregrep UTF-8 tests: no UTF-8 support in PCRE library  

 这是因为在前面步骤中执行./configuration配置时没有加上对utf-8的支持

如果要加上对utf-8的支持可以在./configuration时加上参数:

Shell代码  技术分享
  1. [root@localhost pcre-8.32]# ./configure --enable-utf8  

 配置完后再重新make

make完后再次执行make check结果如下:

Shell代码  技术分享
  1. Testing pcregrep version 8.32 2012-11-30  
  2. Testing pcregrep main features  
  3. Testing pcregrep UTF-8 features  
  4. Testing pcregrep newline settings  
  5. PASS: RunGrepTest  
  6. ==================  
  7. All 5 tests passed  
  8. ==================  
  9. make[2]: Leaving directory `/usr/local/pcre-8.32‘  
  10. make[1]: Leaving directory `/usr/local/pcre-8.32‘  
  11. [root@localhost pcre-8.32]#  

 

5.安装

执行make install操作:

Shell代码  技术分享
  1. [root@localhost pcre-8.32]# make install  

 

make install结束后pcre编译安装流程就结束了。

Linux下编译安装PCRE库