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

保定满城网站建设深建市住房和城乡建设局网站

保定满城网站建设,深建市住房和城乡建设局网站,app营销策略模板,长沙工商注册网上登记tags: brpc categories: brpc 写在前面 实习阶段初次接触到 RPC 这样一种协议, 以及 brpc 这样一个很棒的框架, 但是当时没时间认真深入学习, 就是围绕使用 demo 开发, 还是有点不知其所以然的, 最近抽空来学习一下 brpc, 首要的一点就是在开发机上构建项目, 并且能够跑起来,… tags: brpc categories: brpc 写在前面 实习阶段初次接触到 RPC 这样一种协议, 以及 brpc 这样一个很棒的框架, 但是当时没时间认真深入学习, 就是围绕使用 demo 开发, 还是有点不知其所以然的, 最近抽空来学习一下 brpc, 首要的一点就是在开发机上构建项目, 并且能够跑起来, 下面来看看如何在 m1 芯片的 MacOS 上跑起来 brpc, 并且成功运行 demo 程序: echo 服务器 环境: MacOS M1 arm64 clang 14(xcode) cmake zsh 源码下载 $ git clone https://github.com/apache/brpc.git $ git branch -a $ git checkout -b release-1.6 remotes/origin/release-1.6 $ git branchmaster * release-1.6依赖安装 需要用到 brew, 关于 brew 的安装方法, 之前博客已经给出了, 这里主要说一下安装这些包时候所踩的坑. brpc/docs/cn/getting_started.md at master · apache/brpc; brew install openssl git gnu-getopt coreutils gflags protobuf21 leveldb googletest gperftools brew link protobuf21注意这里面的protobuf21 非常重要, 因为 brpc 不支持 protobuf24(目前最新版), 只能用 21 来编译, 否则会出现很多错误!!! 注意这里因为其他库例如 grpc 和gflags 等默认采用最新版 所以 protobuf 的最新版也会安装, 只需要对 protobuf21强制执行 link即可, 就是带上--overwrite 选项, 可以用--dry-run 查看哪些文件需要被重写. 针对gun-getopt 库, 如果提示未找到, 可以使用: echo export PATH/opt/homebrew/opt/gnu-getopt/bin:$PATH ~/.zshrc source ~/.zshrc构建 执行配置生成: sh config_brpc.sh --headers/opt/homebrew/include --libs/opt/homebrew/lib --ccclang --cxxclang这一步会生成一个config.mk 文件, 文件头部如下: # Generated by config_brpc.sh, dont modify manually SYSTEMDarwin HDRS/opt/homebrew/include/ /usr/local/opt/openssl/include/ LIBS/opt/homebrew/lib /usr/local/opt/openssl/lib/ PROTOC/opt/homebrew/bin/protoc PROTOBUF_HDR/opt/homebrew/include/此时需要改一下默认的 OpenSSL 位置, 否则报错: ssl ld error... # ssl 相关的库找不到了解决方案: /usr/local/opt/openssl - /opt/homebrew/Cellar/openssl3/3.1.2 注意这里的版本, 需要先用brew info openssl 看一下版本. 这里文档中提到可以用 ln -s 的方式创建软链接, 但是我这里创建之后还是不行, 就采用直接改配置的方式执行 了 改完之后如下: # Generated by config_brpc.sh, dont modify manually SYSTEMDarwin HDRS/opt/homebrew/include/ /opt/homebrew/Cellar/openssl3/3.1.2/include/ LIBS/opt/homebrew/lib /opt/homebrew/Cellar/openssl3/3.1.2/lib/ PROTOC/opt/homebrew/bin/protoc PROTOBUF_HDR/opt/homebrew/include/最后就直接执行make -j8 , 耐心等待即可, 编译过程还是很快的, 我这两年多的 m1mba 还是很能打的. 编译完成, 结果如下: tree output -L 2 output ├── bin │ └── protoc-gen-mcpack ├── include │ ├── brpc │ ├── bthread │ ├── butil │ ├── bvar │ ├── idl_options.pb.h │ ├── idl_options.proto │ ├── json2pb │ └── mcpack2pb └── lib├── libbrpc.a└── libbrpc.dylib9 directories, 5 files然后来到 example 目录下的echo_c 中: make -j8然后可以执行: ./echo_server I0919 18:23:45 259 src/brpc/server.cpp:1127] Server[example::EchoServiceImpl] is serving on port8000. I0919 18:23:45 259 src/brpc/server.cpp:1130] Check out http://xxx:8000 in web browser. I0919 18:23:48 2819 server.cpp:54] Received request[log_id0] from 127.0.0.1:55478 to 127.0.0.1:8000: hello world (attached) I0919 18:23:49 3075 server.cpp:54] Received request[log_id1] from 127.0.0.1:55478 to 127.0.0.1:8000: hello world (attached)以及: ./echo_client I0919 18:23:48 259 client.cpp:78] Received response from 0.0.0.0:8000 to 127.0.0.1:55478: hello world (attached) latency1502us I0919 18:23:49 259 client.cpp:78] Received response from 0.0.0.0:8000 to 127.0.0.1:55478: hello world (attached) latency951us ^CI0919 18:23:49 259 client.cpp:89] EchoClient is going to quit完结撒花~ 补充: 通过 cmake 实现构建 光用 make 确实可以构建了, 但是不能生成 command_flags.json, 用不了 clangd 啊… 折腾一下 cmake 吧, 应该不是很复杂 前置条件, 主要针对OpenSSL 这个库, 需要改动的是 brpc 项目目录下的CMakeLists.txt文件, 搜索openssl, 找到这一行: if(CMAKE_SYSTEM_NAME STREQUAL Darwin)set(OPENSSL_ROOT_DIR# /usr/local/opt/openssl # Homebrew installed OpenSSL/opt/homebrew/Cellar/openssl3/3.1.2/ # add this line, specific version use brew info openssl to get) endif()然后还有一个很关键的点, 这里参考了: macos - cmake - osx/mac - openssl brew - Stack Overflow; 将cmake 的编译选项加上-DOPENSSL_ROOT_DIR/opt/homebrew/Cellar/openssl3/3.1.2 , 这样就可以了. $ mkdir build cd build $ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS1 -DOPENSSL_ROOT_DIR/opt/homebrew/Cellar/openssl3/3.1.2 .. $ make -j8接着撒花~
http://www.hkea.cn/news/14574764/

相关文章:

  • 网站全背景做多大网站后台维护教程视频
  • 手机网站绑定wordpress添加二维码弹窗
  • 博客类网站怎么做深圳网站建设卓企
  • 古镇企业网站建设定制河南省汝州市文明建设门户网站
  • 做公司网站需要多久做网站编辑有前途
  • 苏州h5网站建设价格深圳企业网站制作推广运营
  • 网站建设谁家好建手机网站
  • 有没有哪种网站推荐一下wordpress增强编辑器
  • 兴润建设集团有限公司网站05网答案大全
  • 公主岭市住房和城乡建设局网站招投标网
  • seo网站优化及网站推广新乡做网站推广的
  • 网站制作公司站建设上海网络营销推广服务
  • 商贸公司寮步网站建设在虚拟主机上建设多个网站
  • 类模板模板下载网站有哪些设计作品欣赏网站
  • 厦门市同安区建设局公开网站怎么做网站调研
  • 昆明做网站建设价位google play store
  • app和手机网站的区别怎样建设公司网站
  • wordpress创建企业网站wordpress家谱
  • 要建设企业网站郑州网站建设找智巢
  • 廊坊网站建设总部在哪里网站建设基础服务
  • 吉林教育网站建设方案酒店网站的开发及其设计方案
  • 做网站外网可访问网站服务器一年多少钱
  • 建设部职称证书查询官方网站godaddy托管wordpress
  • 专业图库网站 西安越秀seo搜索引擎优化
  • 西安网站建设聂卫系统官网网站模板下载地址
  • 域名怎么做网站一见钟情 网站
  • 国外的包装设计网站网络广告投放的主要方式有
  • 大连 响应式网站制作西安电商平台网站建设
  • 做分享衣服网站的初衷是什么意思楚雄建网站
  • 如何打破违法网站莱芜做网站的公司