当前位置: 首页 > news >正文

仿朋友圈网站建设南京产品网站建设收费

仿朋友圈网站建设,南京产品网站建设收费,网站维护工作是做啥,沈阳住房和城乡建设厅网站本文用的Linux系统为Ubuntu22.04,自带GCC11.3.0。 依赖 ①编译需要boost库,本文用的库版本为boost-1.82.0.beta1.tar.gz。 ②编译需要openssl库,这里使用的版本为openssl-1.1.1s.tar.gz。 ③编译需要cmake库,本文使用的是cmake-3…

本文用的Linux系统为Ubuntu22.04,自带GCC11.3.0。


依赖
①编译需要boost库,本文用的库版本为boost-1.82.0.beta1.tar.gz。
②编译需要openssl库,这里使用的版本为openssl-1.1.1s.tar.gz。
③编译需要cmake库,本文使用的是cmake-3.22.1。


编译依赖
①静态编译boost库到用户目录

./bootstrap.sh
./b2 -a  cxxflags='-fPIC -std=c++17' install --prefix=/home/code/cpprestsdk/boostlib link=static threading=multi boost.locale.icu=off

②静态编译openssl库到用户目录

./config --prefix=/home/code/cpprestsdk/openssllib -fPIC no-shared
make && make install

下载cpprtstsdk模块

git clone https://github.com/Microsoft/cpprestsdk
cd cpprestsdk
git submodule update --init

下载完成后需要修改一下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库,这两行可以不修改。

动态编译cpprestsdk模块

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DOPENSSL_ROOT_DIR=/home/code/cpprestsdk/openssllib -DOPENSSL_INCLUDE_DIR=/home/code/cpprestsdk/openssllib/include -DBoost_LIBRARIES=/home/code/cpprestsdk/boostlib/lib -DBoost_INCLUDE_DIR=/home/code/cpprestsdk/boostlib/include -DCMAKE_INSTALL_PREFIX=/home/code/cpprestsdk/cpprestsdklib
make && make install

注意:如果上一步中没有去掉zlib库依赖,这里cmake命令中需要跟上zlib的信息(我就是因为zlib编译不过才去掉了zlib库依赖)

-DZLIB_INCLUDE_DIR=/home/code/cpprestsdk/zliblib/include -DZLIB_LIBRARY=/home/code/cpprestsdk/zliblib/lib

坐等编译完成(时间有点久,可能是因为是虚拟机的原因)。

测试程序
测试代码可以复制我另一篇博客:C++下最简单的Http服务器,注意把监听地址改成“127.0.0.1:9092”。
这里编译程序命令如下:

# 指定编译器
CC=g++
#指定编译选项
CFLAGS=-Wall -g
Target=res
Src:=$(wildcard ./*.cpp)
Objs:=$(patsubst %.cpp,%.o, $(Src))
#指定头文件位置
INCLUDES = -I/home/code/cpprestsdk/cpprestsdklib/include -I/home/code/cpprestsdk/boostlib/include -I/home/code/cpprestsdk/openssllib/include
#指定库文件
LIBS=-L/home/code/cpprestsdk/cpprestsdklib/lib -lcpprest$(Target):$(Objs)echo $(Objs)@mkdir -p output$(CC) $(Objs) $(LIBS) -o output/$(Target)%.o:%.cpp$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@clean:rm $(Objs)

因为boost和openssl库都是静态编译的,所以编译命令不需要跟boost和openssl(备注:运行的时候,会提示找不到libcpprest.so.2.10,这里需要临时设置一下环境变量:export LD_LIBRARY_PATH=实际目录)。


静态编译cpprestsdk模块
其实动态和静态编译只需要修改一下CMakeLists.txt文件即可,如下

if(IOS OR ANDROID)set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")
else()set(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries")
endif()

改成

if(IOS OR ANDROID)set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")
else()set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")
endif()

这里默认iOS和Android是静态编译,其他都是动态编译,不启用其他平台的动态编译即可。
Makefile文件需要改一下:

# 指定编译器
CC=g++
#指定编译选项
CFLAGS=-Wall -g
Target=res
Src:=$(wildcard ./*.cpp)
Objs:=$(patsubst %.cpp,%.o, $(Src))
#指定头文件位置
INCLUDES = -I/home/code/cpprestsdk/cpprestsdklib/include -I/home/code/cpprestsdk/boostlib/include -I/home/code/cpprestsdk/openssllib/include
#指定库文件
LIBS=-L/home/code/cpprestsdk/cpprestsdklib/lib -lcpprest -L/home/code/cpprestsdk/openssllib/lib -lssl -lcrypto$(Target):$(Objs)echo $(Objs)@mkdir -p output$(CC) $(Objs) $(LIBS) -o output/$(Target)%.o:%.cpp$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@clean:rm $(Objs)

一个疑问
为什么动态编译的时候,Makefile里面不用跟上openssl,静态编译就必须跟上了呢?

http://www.yayakq.cn/news/530856/

相关文章:

  • 漳州网站开发去博大钱少a凡科系统官网
  • 南京栖霞区有做网站的吗wordpress自定义查询参数
  • 网站必须做API接口吗邢台市人才网
  • 中国建设银行社保卡网站网站建设买服务器还是数据库
  • 教育视频培训网站建设wordpress 没有足够权限
  • 团队云智能网站建设大地资源在线资源免费观看
  • 网站首页风格网站建设需求分析文档
  • 奥派电子商务网站建设论文推广文案格式
  • 成都软件开发网站建设网站简介 title
  • 郑州知名网站推广seo内容优化方法
  • 网站开发报告步骤分析wordpress网站全过程
  • 网站建设分析从哪几个方面网络营销推广方案怎么做
  • 网站宣传模式网站备案信息批量查询
  • 做网站茶叶首页标题怎么写飞言情做最好的小说网站
  • 中国网站建设网一键生成文案的网站
  • 17一起做网店网站wordpress文章新窗口打开
  • 提高网站规范化建设黄骅市天气预报15天气
  • 我想自己创建购物网站宝安关于网站建设
  • 金华市建设局官方网站wordpress 文章点赞
  • 昆明网站建设优化图片山西网站制作公司哪家好
  • 音频网站建设维护平台是什么工作
  • 盐城网站建设渠道合作wordpress横向导航菜单主题
  • 网站建设的方式有哪些内容wordpress装模板
  • 网站开发团队配置手机回收网站开发
  • 怎么样备份网站数据山东建设工程管理局网站
  • 网站seo专员网站制作 常州
  • 网站想要游览怎么做长沙优化公司
  • 河北网站制作报价免费网站推广app
  • 网站建设需求材料网站怎么做超链接
  • 网站开发运营公司绩效提成方案1688网页登录