在windows上编译apr库apr-util库

在windows上编译apr库apr-util库

环境:

  win10、VS2015企业版、CMake3.18.2

一、下载apr相关库

  1.1)expat:expat-2.1.0.tar.gz

  1.2)apr库:apr-1.6.3.zip

  1.3)apr-util库:apr-util-1.6.1-win32-src.zip

  解压到指定目录下,最后的目录结构如下

二、编译expat

  2.1)编写构建脚本build_expat_for_vs_2015_x86_debug.bat

下面是脚本

@echo off

::VS2015 x86编译环境
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86

::创建构建目录
if not exist cmake (
    mkdir cmake
)
cd cmake

::创建nmake工程
::MSVC=ON                   禁止4996警告
::BUILD_tools=OFF           禁止生成BUILD_tools
::BUILD_examples=OFF        禁止生成BUILD_examples
::BUILD_tests=OFF           禁止生成BUILD_tests
::DBUILD_shared=OFF         生成静态库
::CMAKE_BUILD_TYPE=Debug    生成调试信息
cmake -G "NMake Makefiles" -DMSVC=ON -DBUILD_tools=OFF -DBUILD_examples=OFF -DBUILD_tests=OFF -DBUILD_shared=OFF -DCMAKE_BUILD_TYPE=Debug ..
nmake
pause

 

  2.2)生成expat库

  将build_expat_for_vs_2015_x86_debug.bat文件放到expat-2.1.0目录下,执行脚本生成静态库expat.lib文件。

三、编译apr

   3.1)编写构建脚本build_apr_for_vs_2015_x86_debug.bat 

下面是脚本

 

@echo off

::VS2015 x86编译环境
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86

::创建构建目录
if not exist cmake (
    mkdir cmake
)
cd cmake

::创建nmake工程
::APR_INSTALL_PRIVATE_H=OFF 禁止APR_INSTALL_PRIVATE_H
::APR_HAVE_IPV6=OFF         禁止APR_HAVE_IPV6
::INSTALL_PDB=OFF           禁止INSTALL_PDB
::APR_BUILD_TESTAPR=OFF     禁止APR_BUILD_TESTAPR
::TEST_STATIC_LIBS=OFF      禁止TEST_STATIC_LIBS
::CMAKE_BUILD_TYPE=Debug    生成调试版本
cmake -G "NMake Makefiles" -DAPR_INSTALL_PRIVATE_H=OFF -DAPR_HAVE_IPV6=OFF -DINSTALL_PDB=OFF -DAPR_BUILD_TESTAPR=OFF -DTEST_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug ..
nmake

::拷贝头文件
copy /y apr.h ../include/

pause

说明:如果拷贝失败,手动拷贝。从make文件夹拷到include文件夹。

  3.2)生成apr库

  将build_apr_for_vs_2015_x86_debug.bat 文件放到apr-1.6.3目录下,执行脚本生成静态库apr-1.lib文件。

四、编译apr-util

  4.1)修改CMakeLists.txt文件,添加红色的内容

 

PROJECT(APR-Util C)

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

#FIND_PACKAGE(OpenSSL)

#FIND_PACKAGE(expat)
...
SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libaprutil-1.pdb)
TARGET_LINK_LIBRARIES(libaprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES} ${SYSTEM_LIBRARIES})
SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_EXPORT;XML_STATIC;WINNT")
...
SET(install_targets ${install_targets} aprutil-1)
TARGET_LINK_LIBRARIES(aprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES} ${SYSTEM_LIBRARIES})
SET_TARGET_PROPERTIES(aprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_STATIC;APR_DECLARE_STATIC;APU_DSO_MODULE_BUILD;XML_STATIC")

 

说明:增加两个${SYSTEM_LIBRARIES}

         去掉 #FIND_PACKAGE(OpenSSL) #FIND_PACKAGE(expat) 加#

 

  4.2)编写构建脚本build_aprutil_for_vs_2015_x86_debug.bat 

 

@echo off

::VS2015 x86编译环境
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86

set CURRENT_DIR=%~dp0
::设置APR头文件目录
set APR_INCLUDE_DIR=%CURRENT_DIR%apr-1.6.3\include
::设置APR库文件
set APR_LIBRARIES=%CURRENT_DIR%apr-1.6.3\cmake\apr-1.lib
::设置EXPAT头文件目录
set EXPAT_INCLUDE_DIRS=%CURRENT_DIR%../expat-2.1.0/lib
::设置EXPAT库文件
set EXPAT_LIBRARIES=%CURRENT_DIR%../expat-2.1.0/cmake/expat.lib
::设置window系统库文件
set SYSTEM_LIBRARIES="ws2_32.lib mswsock.lib rpcrt4.lib"

::创建构建目录
if not exist cmake (
    mkdir cmake
)
cd cmake

::创建nmake工程
::MSVC=ON                                   禁止4996警告
::APU_HAVE_CRYPTO=OFF                       禁止APU_HAVE_CRYPTO
::APU_HAVE_ODBC=OFF                         禁止APU_HAVE_ODBC
::APU_HAVE_ODBC=OFF                         禁止APU_HAVE_ODBC
::APR_HAS_LDAP=OFF                          禁止APR_HAS_LDAP
::INSTALL_PDB=OFF                           禁止INSTALL_PDB
::APR_BUILD_TESTAPR=OFF                     禁止APR_BUILD_TESTAPR
::TEST_STATIC_LIBS=OFF                      禁止TEST_STATIC_LIBS
::APR_INCLUDE_DIR=ON                        启用EXPAT_FOUND
::APR_INCLUDE_DIR=%APR_INCLUDE_DIR%         设置APR头文件目录
::APR_LIBRARIES=%APR_LIBRARIES%             设置APR库文件
::EXPAT_INCLUDE_DIRS=%EXPAT_INCLUDE_DIRS%   设置EXPAT头文件目录
::EXPAT_LIBRARIES=%EXPAT_LIBRARIES%         设置EXPAT库文件
::SYSTEM_LIBRARIES=%SYSTEM_LIBRARIES%       设置window系统库文件
::CMAKE_BUILD_TYPE=Debug                    生成调试版本
cmake -G "NMake Makefiles" -DAPU_HAVE_CRYPTO=OFF -DAPU_HAVE_ODBC=OFF -DAPR_HAS_LDAP=OFF -DINSTALL_PDB=OFF -DAPR_BUILD_TESTAPR=OFF -DTEST_STATIC_LIBS=OFF -DEXPAT_FOUND=ON -DAPR_INCLUDE_DIR=%APR_INCLUDE_DIR% -DAPR_LIBRARIES=%APR_LIBRARIES% -DEXPAT_INCLUDE_DIRS=%EXPAT_INCLUDE_DIRS% -DEXPAT_LIBRARIES=%EXPAT_LIBRARIES% -DSYSTEM_LIBRARIES=%SYSTEM_LIBRARIES% -DCMAKE_BUILD_TYPE=Debug ..
nmake
pause

 

  4.3)生成aprutil库

  将build_aprutil_for_vs_2015_x86_debug.bat 文件放到apr-util-1.6.1目录下,执行脚本生成静态库aprutil-1.lib和动态库libaprutil-1.lib、libaprutil-1.dll文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: apr-util-1.6.1.tar.gz 是Apache Portable Runtime(APR)的一个附加,用于支持Apache软件中的各种功能。APR是一套为网络应用程序开发提供基本功能的,它为开发者提供了一个跨平台的编程接口,用于处理底层操作系统的网络功能。 APR-utilAPR项目的一个子,为APR提供了额外的功能和特性。它包含一些常用的实用工具和扩展模块,如数据连接池、内存缓存、LDAP和SSL等。 版本号apr-util-1.6.1.tar.gz表示这是APR-util的1.6.1版本的源代码压缩包。该压缩包是为了方便用户下载和安装APR-util。压缩包中的源代码可以编译成可执行文件,以便于在用户的系统上部署和使用APR-util。 用户可以在下载apr-util-1.6.1.tar.gz压缩包后,解压并编译源代码,生成相应的文件。然后,将生成的文件与自己的应用程序链接,以使用APR-util提供的功能和特性。这个过程可能需要一些编译工具和依赖的支持,用户可以根据具体的操作系统和编译环境进行配置和安装。 总之,apr-util-1.6.1.tar.gz是Apache Portable Runtime(APR)附加APR-util的源代码压缩包,用户可以通过编译该源代码生成可执行文件,以获取APR-util的功能和特性。这样的工具对于开发网络应用程序非常有用。 ### 回答2: apr-util-1.6.1.tar.gz 是一个压缩文件,用于安装 Apache Portable Runtime (APR) 工具的工具包。APR 是一套为软件开发者提供跨平台的 API 接口的,可以提供底层操作系统功能的封装。 apr-util-1.6.1.tar.gz 包含了 APR 的附加工具和,可以用于扩展和增强 APR 的功能。这个版本号表示的是 1.6.1 版本的 apr-util 软件包。 要使用 apr-util-1.6.1.tar.gz,首先需要将其解压缩。可以使用压缩软件或者命令行工具进行解压。解压后,可以得到源代码文件和其他相关文件。 接下来,可以使用编译工具,如 gcc,对源代码进行编译编译时需要参考软件包中的安装说明文档,按照说明进行编译安装。 具体而言,可以运行 configure 命令进行配置,然后运行 make 命令进行编译,最后运行 make install 命令进行安装。这样就可以将 apr-util-1.6.1 软件包编译安装到系统中。 安装完成后,可以在开发中使用 APR 提供的 API 接口,来实现底层操作系统功能的封装。APR 提供了许多有用的功能,如网络编程、多线程处理、内存管理等等,可以简化软件开发过程,提高开发效率。 总之,apr-util-1.6.1.tar.gz 是一个 APR 工具的软件包,通过解压缩、编译安装,可以在开发中使用 APR 提供的 API 接口,实现跨平台的软件开发。 ### 回答3: apr-util-1.6.1.tar.gz是一个软件包的压缩文件,被广泛用于Unix或类Unix操作系统中。它是Apache Portable Runtime (APR)中的一个组件,用于提供一些辅助函数和工具给开发者使用。 在开发Web服务器或其他网络应用程序时,APR-Util可以为开发人员提供一系列的功能,如数据连接、加密解密、XML处理、URI解析等。它构建在APR之上,与APR一起,为开发人员提供了更高层次的抽象和易用性。 APR-Util安装非常简单。首先,我们需要将tar.gz文件通过解压工具解压缩。然后,进入解压后的目录,并执行一些配置和编译的命令。最后,运行make和make install命令,将APR-Util安装到指定的目录中。 安装完成后,开发人员可以使用所提供的函数和工具来简化编写网络应用程序的过程。无论是连接和管理数据,还是进行文件操作或加密解密,APR-Util都可以提供一系列易用的API。 总结来说,APR-Util是Apache Portable Runtime的一个组件,用于提供一些辅助函数和工具给开发者使用。它可以简化网络应用程序的开发过程,提供了常用的功能和工具。通过配置、编译安装APR-Util,开发人员可以开始使用它来构建高效、稳定的网络应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

akai9898

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值