Linux编译cpprestsdk库

一、安装依赖

如果你想从源码安装 Boost 和 OpenSSL,你需要首先下载 Boost 和 OpenSSL 的源码,然后编译和安装它们。以下是详细的步骤:

  1. 下载 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
  2. 解压源码:

    tar -xvzf boost_1_74_0.tar.gz
    tar -xvzf openssl-1.1.1g.tar.gz
  3. 编译和安装 Boost:

    cd boost_1_74_0
    ./bootstrap.sh --prefix=/usr/local
    ./b2 install
  4. 编译和安装 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:设置安装路径。

参考文档:Linux编译cpprestsdk库_cpprest linux_youyicc的博客-CSDN博客文章浏览阅读924次。因为boost和openssl库都是静态编译的,所以编译命令不需要跟boost和openssl(备注:运行的时候,会提示找不到libcpprest.so.2.10,这里需要临时设置一下环境变量:export LD_LIBRARY_PATH=实际目录)。注意,这里第一行是将警告视为错误关闭,避免编译报错,后两行是去掉zlib依赖,如果系统上有zlib或者单独编译了zlib库,这两行可以不修改。这里默认iOS和Android是静态编译,其他都是动态编译,不启用其他平台的动态编译即可。_cpprest linuxhttps://blog.csdn.net/youyicc/article/details/129769637

 三、websockets源码编译,参考链接:

最新libwebsockets库的编译与测试方法_libwebsockets编译-CSDN博客文章浏览阅读7.3k次,点赞5次,收藏14次。1. 环境在 Ubuntu 16.4.5 TLS 版本中编译和测试通过。下载最新的源代码需要git,若没有安装git可以使用下面命令进行安装:sudo apt-get install git -y另外,还有一些编译的依赖库,相关安装命令如下:sudo apt-get install cmake -ysudo apt-get install openssl -ysudo apt-ge..._libwebsockets编译https://blog.csdn.net/cgs1999/article/details/89704467

  • 40
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值