在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" x86set 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文件。
在windows上编译apr库apr-util库相关推荐
- 手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生
手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生 1.下载并安装 a)下载:delphicbuilder10_2_3_2631.iso ...
- 在Windows上编译FreeRDP
在Windows上编译FreeRDP FreeRDP是RDP协议的一个开源实现,像mstsc远程桌面也是RDP协议的一个实现微软把它预装在Windows系统中.今天我们就讲下如何在Windows下编译 ...
- 手把手教你在Windows上编译Swift工具链
2020/5/27更新:大家现在可以直接从Saleem Abdulrasool的Azure Pipeline中下载打包好的Swift Windows SDK了,在他的GitHub中找到swift-bu ...
- php在windows编译_在Windows上编译PHP
php在windows编译 Compiling PHP from source code is more commonly done on Unix-type systems. Those worki ...
- Windows上编译libpng
Windows上编译libpng 下载libpng 1.5.10并解压到[工作目录]/png/libpng-1.5.10 用CMake选择png/libpng-1.5.10目录并Configure: ...
- Windows上编译OpenEXR
Windows上编译OpenEXR 注意一定要使用1.0.1版本的ilmbase和1.6.1版本的openexr,其它版本的我测试过,OpenImageIO会编译失败. 解压ilmbase 1.0.1 ...
- windows上编译安装pytorch的c++扩展
环境描述 window10 python3.6.8 [MSC v.1916 64 bit (AMD64)] pytorch 1.10.0+cu113 cuda版本 11.1 使用mingw32编译 编 ...
- Windows上编译github源码方式运行Node-RED,以及离线迁移安装Node-RED
场景 Node-RED简介与Windows上安装.启动和运行示例: Node-RED简介与Windows上安装.启动和运行示例_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面是在Wi ...
- windows上编译zlib-1.2.8
MSVC编译 使用VS(x86)命令行工具进入到zlib根目录,执行 nmake -f win32/Makefile.msc ,在根目录下生成:zlib.lib(静态库) zdll.lib(动态库的 ...
最新文章
- 20162329 2017-2018-1 《程序设计与数据结构》第十一周学习总结
- C#将Excel数据表导入SQL数据库的两种方法(转)
- Burp Suite安装配置
- Iperf源代码分析(八)
- 正则匹配问号_爬虫之正则表达式
- linux c 内网设备扫描,局域网ip扫描器c语言多线程 linux版
- MySQL_管理与维护
- 短信接口与短信平台收费标准----速码云仅供参考
- ip地址与整数的相互转化
- [附源码]计算机毕业设计JAVA 宠物医院管理系统
- 《单片机》实验——实验2 MCS-51外部中断控制实验
- html过滤检索类似excel,利用jQuery实现仿Excel表格排序筛选代码
- 信号完整性(SI)电源完整性(PI)学习笔记(二十)传输线的串扰(四)
- 安徽省2016“京胜杯”程序设计大赛_C_箭无虚发
- 推荐一款精美小众的读书笔记app
- Python中的文件路径
- 瑞幸创造VC圈神话,风暴中的OYO回应,企鹅杏仁集团完成2.5亿美元融资...
- android onCreate与onCreateView的区别
- 【网络通信 -- 直播】流媒体直播基础知识点总结
- php保存视频,使用php输出mp4视频
热门文章
- c语言编程星阵直角三角形,C语言星阵图形使用FOR,WHILE,DO-WHILE 三种循环结构实现.doc...
- 稿费一般多少钱一千字_为什么我在刊物发表文章会给稿费千字多少元不等,而网上却没有?...
- SQL Server的错误日志
- 哥伦比亚大学公众人物脸部数据集
- max3490esa_MAX1661EUB-T_maxim芯片后缀tg16是什么意思
- 大聪明教你学Java | 实现邮件发送(以163邮箱向QQ邮箱发送邮件为例)
- java根据经纬度转地址或者根据地址转经纬度
- 一帘心事碎碎念,一眸雪舞剪剪风
- android canvas 背景图片,Android更改canvas背景颜色而不会丢失任何图纸
- 华为交换机SEP双半环设计方案及配置详细步骤