cpp-netlib笔记一:编译运行第一个cpp-netlib服务程序
白通
2023-12-01
Title:编译运行第一个cpp-netlib服务程序
Author:Kagula
Date:2017-05-28
Environment:
[1]Boost 1.64
本机安装目录 D:\SDK\boost_1_64_0
[2]Windows10、VS2017 Update1
[3]OpenCL 1.0.2k
本机安装目录 D:\SDK\OpenSSL_1_0_2k_vc2007
[4]CMake 3.8.1
[5]cpp-netlib-0.12.0-final
本机安装目录 D:\SDK\cpp-netlib-0.12.0-final
[6]Python 3.6.1
[7]ActivePerl 5.16
Introduction:
介绍如何使用cpp-netlib第三方库编译运行第一个Http服务。
OpenSSL
下载boost后,参考下面的命令使用x86 Native Tools Command Prompt for VS2017编译并安装
perl Configure VC-WIN32 no-asm --prefix=D:\SDK\OpenSSL_1_0_2k_vc2007
ms\do_ms
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
Boost
下载boost后,参考下面的命令使用x86 Native Tools Command Prompt for VS2017编译需要的boost子库date_time。
bjam --build-type=complete toolset=msvc-14.1 --with-date_time --stagedir="./vc2017"
cpp-netlib
使用CMake generate vc2017 solution
Variable参考下面的设定
Boost_Dir D:\SDK\boost_1_64_0
Boost_INCLUDE_DIR D:\SDK\boost_1_64_0
OPENSSL_INCLUDE_DIR D:\SDK\OpenSSL_1_0_2k_vc2007\include
SSL_EAY_RELEASE D:\SDK\OpenSSL_1_0_2k_vc2007\lib\ssleay32.lib
LIB_EAY_RELEASE D:\SDK\OpenSSL_1_0_2k_vc2007\lib\libeay32.lib
PYTHON_EXECUTABLE C:\Users\kagula\AppData\Local\Programs\Python\Python36\python.exe
打开CPP-NETLIB solution
编译cppnetlib-uri项目后,输出
D:\SDK\cpp-netlib-0.12.0-final\vc2017\libs\network\src\Debug\cppnetlib-uri.lib
编译cppnetlib-server-parsers项目
修改is_const.hpp文件,把 true_type 改为 boost::true_type
输出
D:\SDK\cpp-netlib-0.12.0-final\vc2017\libs\network\src\Debug\cppnetlib-server-parsers.lib
编译hello_world_server项目
指定Library search path为D:\SDK\boost_1_64_0\vc2017\lib
输出
D:\SDK\cpp-netlib-0.12.0-final\vc2017\example\Debug\hello_world_server.exe
指定Command Arguments为0.0.0.0 8080运行。
把D:\SDK\OpenSSL_1_0_2k_vc2007\bin下的libeay32.dll ssleay32.dll复制到
D:\SDK\cpp-netlib-0.12.0-final\vc2017\example\Debug
IDE中运行程序。
在IE浏览器中输入http://localhost:8080/
正确返回Http响应页面,经Intel Core i3-2310机器测试,响应时间大概
20ms+,
慢于Tomcat+Spring3下的
10ms+。
备注:
[1]Cmake的时候不要选择生成动态库,否则只生成dll,但是hello world server例子默认是去链接lib库的。