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

做淘客网站去哪里购买空间wordpress 163

做淘客网站去哪里购买空间,wordpress 163,河南工程建设 协会网站,中国世界排名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 protobuf@21 leveldb googletest gperftools
brew link protobuf@21

注意这里面的protobuf@21 非常重要, 因为 brpc 不支持 protobuf24(目前最新版), 只能用 21 来编译, 否则会出现很多错误!!!

注意这里因为其他库例如 grpc 和gflags 等默认采用最新版 所以 protobuf 的最新版也会安装, 只需要对 protobuf@21强制执行 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 --cc=clang --cxx=clang++

这一步会生成一个config.mk 文件, 文件头部如下:

# Generated by config_brpc.sh, don't modify manually
SYSTEM=Darwin
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/openssl@3/3.1.2

注意这里的版本, 需要先用brew info openssl 看一下版本.

  • 这里文档中提到可以用 ln -s 的方式创建软链接, 但是我这里创建之后还是不行, 就采用直接改配置的方式执行 了

改完之后如下:

# Generated by config_brpc.sh, don't modify manually
SYSTEM=Darwin
HDRS=/opt/homebrew/include/ /opt/homebrew/Cellar/openssl@3/3.1.2/include/
LIBS=/opt/homebrew/lib /opt/homebrew/Cellar/openssl@3/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 port=8000.
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_id=0] 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_id=1] 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=) latency=1502us
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=) latency=951us
^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/openssl@3/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/openssl@3/3.1.2 , 这样就可以了.

$ mkdir build && cd build
$ cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DOPENSSL_ROOT_DIR=/opt/homebrew/Cellar/openssl@3/3.1.2 ..
$ make -j8

接着撒花~

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

相关文章:

  • 甘肃崇信县门户网站规划电子商务网站
  • 做网站 公司音乐网站毕业设计代码
  • 艺之都网站建设微信app开发网站制作新手
  • 相机网站建设规划书怎么免费搭建一个网站
  • 客户问 你们网站怎么做的wordpress 餐饮 主题
  • discuz仿搜索网站优秀的网站首页布局
  • 代做网站跳转学做漂亮早餐的网站
  • 网站运营之怎样做好seo优化wordpress调用网页
  • 网站建设公司推荐q479185700顶上云南华琴网络科技有限公司
  • 淘宝客是怎么做代理网站的门户网站的推广方案
  • 网站开发要用cmswordpress副标题的作用
  • 怎么设计个人logo网站建设公司推荐乐云seo
  • 高佣联盟做成网站怎么做为什么营销型网站比普通网站建站贵
  • 广西住房和城乡建设厅网站主页推广计划有哪些
  • 网站地图用法大理网站制作
  • lamp网站建设18款禁用免费观看app下载
  • 湘潭网站设计外包公司深圳龙华区福城街道
  • 做科学实验的网站淘宝单页面网站
  • 个人婚礼网站设计简约好看的网站模板
  • 重庆网站推广专家怎做视频网站
  • 网站县区分站点建设常德网站建设渠道
  • 许昌企业网站去哪开发关于做视频网站的一些代码
  • 佛山专业建站公司东莞网站建设的公司
  • 手机网站创建站点成功网页制作与设计怎么设置圆角
  • 网站qq代码生成深圳 公司网站设计
  • 手机app开发网站广州兼职做网站
  • 网站后台管理无法编辑网站开发那种语言
  • 固安住房和城乡建设网站网站建设与策划试卷
  • 国外网站服务器租用哈尔滨招投标信息网
  • 做租车行网站虚拟服务器搭建