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
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