一、安装依赖
如果你想从源码安装 Boost 和 OpenSSL,你需要首先下载 Boost 和 OpenSSL 的源码,然后编译和安装它们。以下是详细的步骤:
-
下载 Boost 和 OpenSSL 的源码:
wget https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.gz wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
-
解压源码:
tar -xvzf boost_1_74_0.tar.gz tar -xvzf openssl-1.1.1g.tar.gz
-
编译和安装 Boost:
cd boost_1_74_0 ./bootstrap.sh --prefix=/usr/local ./b2 install
-
编译和安装 OpenSSL:
cd ../openssl-1.1.1g ./config --prefix=/usr/local make make install
以上步骤会将 Boost 和 OpenSSL 安装到
/usr/local
目录。如果你想安装到其他目录,你需要在--prefix
选项中指定其他目录。注意:在编译和安装 Boost 和 OpenSSL 时,你可能需要 root 权限。如果你没有 root 权限,你可能需要使用
sudo
命令。
二、安装cpprestsdk
1、下载cpprestsdk模块
git clone https://github.com/Microsoft/cpprestsdk
cd cpprestsdk
git submodule update --init
2、下载完成后需要修改一下CMakeLists.txt
cd Release
vi CMakeLists.txt
将以下三行
set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
改成
set(WERROR OFF CACHE BOOL "Treat Warnings as Errors.")
set(CPPREST_EXCLUDE_WEBSOCKETS ON CACHE BOOL "Exclude websockets functionality.")
set(CPPREST_EXCLUDE_COMPRESSION ON CACHE BOOL "Exclude compression functionality.")
注意,这里第一行是将警告视为错误关闭,避免编译报错,后两行是去掉zlib依赖,如果系统上有zlib或者单独编译了zlib库,这两行可以不修改。关于这三行的详细解释如下,如果需要使用websocket功能,不要更改第二行!!!
-
set(WERROR OFF CACHE BOOL "Treat Warnings as Errors.")
:这一行将WERROR
变量设置为OFF
,这意味着警告将不会被视为错误。CACHE BOOL
部分意味着这个值将在CMake运行之间被缓存,并被记住。 -
set(CPPREST_EXCLUDE_WEBSOCKETS ON CACHE BOOL "Exclude websockets functionality.")
:这一行将CPPREST_EXCLUDE_WEBSOCKETS
变量设置为ON
,这意味着构建过程中将排除WebSocket功能。CACHE BOOL
部分意味着这个值将在CMake运行之间被缓存,并被记住。 -
set(CPPREST_EXCLUDE_COMPRESSION ON CACHE BOOL "Exclude compression functionality.")
:这一行将CPPREST_EXCLUDE_COMPRESSION
变量设置为ON
,这意味着构建过程中将排除压缩功能。CACHE BOOL
部分意味着这个值将在CMake运行之间被缓存,并被记住。
3、动态编译cpprestsdk模块
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=/usr/bin/ -DOPENSSL_INCLUDE_DIR=/usr/include -DBoost_LIBRARIES=/usr/lib -DBoost_INCLUDE_DIR=/usr/include -DCMAKE_INSTALL_PREFIX=/home/ralf/Code/cpprestsdk-master/cpprestsdk-master/build/lib
make && make install
-
-DCMAKE_BUILD_TYPE=Release
:设置构建类型为Release,这意味着CMake将生成优化过的代码,不包含调试信息。 -
-DOPENSSL_ROOT_DIR=/path/to/openssl_root
:设置OpenSSL的可执行文件所在的目录。 -
-DOPENSSL_INCLUDE_DIR=path/to/openssl_root/include
:设置OpenSSL的头文件目录。 -
-DBoost_LIBRARIES=path/to/boost_root/lib
:设置Boost库的目录。 -
-DBoost_INCLUDE_DIR=path/to/boost_root/include
:设置Boost头文件的目录。 -
-DCMAKE_INSTALL_PREFIX=path/to/install
:设置安装路径。