apr安装说明

apr是Apache可移植运行时库,支持跨平台,其内存管理模块被itrans引擎使用。


Linux下安装
1.下载Linux安装包,需要下面2个安装包
apr-1.5.1.tar.gz
apr-util-1.5.3.tar.gz
ps:下载可以去apache官网下载http://www.apache.org/,点击download进入下载页面,点击http://mirror.bit.edu.cn/apache/,下载相应的安装包


2.解压下载的安装包
tar -zvxf apr-1.5.1.tar.gz
tar -zvxf apr-util-1.5.3.tar.gz


3.安装apr                                                                                                                                                    
cd apr-1.5.1
./configure --prefix=/usr/local/apr  [enable_debug=ON]   ——配置
报错:
config.status: executing libtool commands
rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands
解决方法:
直接打开/usr/local/src/apr-1.5.1/configure  把 $RM “$cfgfile” 那行删除掉 
$RM “$cfgfile”  大约在 42302 行
然后再重新运行  
./configure  --prefix=/usr/local/apr  [enable_debug=ON]   ——配置
make ——编译
make install ——安装


4.安装apr-util
cd ../apr-util-1.5.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [enable_debug=ON]  ——配置
make ——编译
make install  ——安装


Windows下安装
1. 下载Win32安装包,需要两个安装包
apr-1.5.2-win32-src.zip
apr-util-1.5.4-win32-src.zip


2. 解压上述的安装包分别到文件夹apr,apr-util
   创建两个文件夹用于构建build-apr,build-apr-util
   创建两个文件夹分别作为安装路径apr-inst,apr-util-inst
  
3. 使用CMake-gui进行构建,构建前请仔细阅读安装包的ReadMe.cmake文件,该文件介绍了构建方法和一些注意事项


4. 先构建并安装apr。
   修改CMAKE_INSTALL_PREFIX为apr-inst文件夹的路径(注意路径分隔符为左斜杠/,使用右斜杠会出现错误)
   修改CMAKE_CONFIGURATION_TYPES为Release
   修改INSTALL_PDB为OFF


5. CMake-gui会生成sln文件,使用vs直接打开sln; build其中的INSTALL工程即可自动完成构建和安装;


6. 在build其中的INSTALL工程时可能出现错误,修改build-apr,build-apr-util文件夹中cmake_install.cmake文件,其中有个拷贝pdb文件的命令;
   这个命令中的路径有错误,修改即可。错误信息如下:
Error : Error processing file: cmake_install.cmake d:\Apache\build-apr\EXEC


7. 构建和安装apr-util.apr-util需要用到apr的头文件和输出库
   修改APR_INCLUDE_DIR为apr-inst/include的路径
   修改APR_LIBRARIES为apr-inst/lib/libapr-1.lib的路径
   修改CMAKE_INSTALL_PREFIX为apr-util-inst文件夹的路径(注意路径分隔符为左斜杠/,使用右斜杠会出现错误)
   修改CMAKE_CONFIGURATION_TYPES为Release
   修改INSTALL_PDB为OFF




Android NDK交叉编译apr和apr-util
1.  生成工具链,将工具链路径的bin加入到环境变量PATH中
export PATH="/home/yxhuang3/android-toolchain-9/bin":$PATH
2.  设置C编译器
export CC=arm-linux-androideabi-gcc
export CFLAGS="-pie -fPIE"
export LDFLAGS="-pie -fPIE"
3.  解压apr, 创建目录aprinst(该目录用于保存apr的编译结果)
    直接打开configure,把 $RM “$cfgfile”那行删除掉
4.   ./configure --host=arm-linux --prefix=/home/yxhuang3/itrans/apache/aprinst2 LIBS=-lpthread --enable-so  ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes apr_cv_tcp_nodelay_with_cork=yes ap_void_ptr_lt_long=no
    其中--host表示交叉编译
    其中LIBS=-lpthread表示链接pthread库,最终libapr-1.so必须依赖libthread_db.so
5.  make
    中间会出现错误1:
    
In file included from ./include/apr_strings.h:52,  
                 from passwd/apr_getpass.c:23:  
./include/apr_want.h:95: error: redefinition of 'struct iovec'  
make[1]: *** [passwd/apr_getpass.lo] Error 1  
make[1]: Leaving directory `/work/src/apr-1.4.8'  
make: *** [all-recursive] Error 1  
可以修改include/apr_want.h,注释掉struct iovec的定义即可


    中间会出现错误1:


apache_1.3.39/src/main/gen_test_char处失败,因为arm版本该程序无法在本地机器运行,
你需要 把前面编译的本地版本的apache_1.3.39/src/main/gen_test_char覆盖这个arm版本,
然后转到arm版本的 apache_1.3.39下继续make.
随后编译到另一个程序apache_1.3.39/src/main/gen_uri_delims也出现相 同的问题,也使用本地版本覆盖掉它,继续make,直到最后编译成功.


6.  make install
7.  安装apr-util, 解压apr-util, 创建目录aprutilinst(该目录用于保存apr-util的编译结果)
8.  ./configure --host=arm-linux --prefix=/aprutilinst --with-apr=/aprinst
9.  make && make install

你可能感兴趣的:(apr安装说明)