首页 > 系统相关 >brpc linux 下编译构建

brpc linux 下编译构建

时间:2024-08-17 20:39:42浏览次数:12  
标签:gflags brpc name bazel local 编译 linux com

  brpc 在 linux 下编译构建,比在 mac 下还要更复杂些,mac 下可以走官方说明编译成功,过程中也需要进行一些配置调整。

  在 linux 通过 bazel 最终实现了 brpc 编译通过。

      相关版本 centos 版本 7,bazel 版本 2.0.0

       brpc 版本 1.0,gflags 、protobuf、leveldb 相关版本因网络加载慢原因,通过下载下来配置到本地实现。

       bazel WORKSPACE 配置

workspace(name = "com_github_brpc_brpc")

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

skylib_version = "0.8.0"
http_archive(
name = "bazel_skylib",
type = "tar.gz",
url = "https://github.com/bazelbuild/bazel-skylib/releases/download/{}/bazel-skylib.{}.tar.gz".format (skylib_version, skylib_version),
sha256 = "2ef429f5d7ce7111263289644d233707dba35e39696377ebab8b0bc701f7818e",
)

local_repository(
name = "rules_cc",
path = "/root/rules_cc-8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0",
)

local_repository(
name = "rules_java",
path = "/root/rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
)

local_repository(
name = "com_google_protobuf",
path = "/root/protobuf-3.6.1.3",
)


local_repository(
name = "com_github_gflags_gflags",
path = "/root/gflags-46f73f88b18aee341538c0dfc22b1710a6abedef",
)

bind(
name = "gflags",
actual = "@com_github_gflags_gflags//:gflags",
)

new_local_repository(
name = "com_github_google_leveldb",
path = "/root/leveldb-a53934a3ae1244679f812d998a4f16f2c7f309a6",
build_file = "//:leveldb.BUILD",
)

 

http_archive(
name = "com_github_google_glog",
build_file = "//:glog.BUILD",
strip_prefix = "glog-a6a166db069520dbbd653c97c2e5b12e08a8bb26",
url = "https://github.com/google/glog/archive/a6a166db069520dbbd653c97c2e5b12e08a8bb26.tar.gz"
)

http_archive(
name = "com_google_googletest",
strip_prefix = "googletest-0fe96607d85cf3a25ac40da369db62bbee2939a5",
url = "https://github.com/google/googletest/archive/0fe96607d85cf3a25ac40da369db62bbee2939a5.tar.gz",
)

new_local_repository(
name = "openssl",
path = "/usr",
build_file = "//:openssl.BUILD",
)

new_local_repository(
name = "openssl_macos",
build_file = "//:openssl.BUILD",
path = "/usr/local/opt/openssl",
)

bind(
name = "ssl",
actual = "@openssl//:ssl"
)

bind(
name = "ssl_macos",
actual = "@openssl_macos//:ssl"
)

new_local_repository(
name = "zlib",
build_file = "//:zlib.BUILD",
path = "/usr",
)

  编译命令

    brpc bazel编译: 

  bazel build //:protoc-gen-mcpack --incompatible_disable_deprecated_attr_params=false --incompatible_new_actions_api=false 

  echo_c++_server bazel编译:

      bazel build //example:echo_c++_server --incompatible_disable_deprecated_attr_params=false --incompatible_new_actions_api=false --copt -DHAVE_ZLIB=1

 

标签:gflags,brpc,name,bazel,local,编译,linux,com
From: https://www.cnblogs.com/freedommovie/p/18364859

相关文章

  • Linux系统的Apache2如何启动cgi模块(Ubuntu)
    欢迎诸位来阅读在下的博文~在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力!江山如画,客心如若,欢迎到访,一展风采文章目录环境1.**启用CGI模块**2.**配置CGI脚本目录**3.**配置CGI脚本**4.**测试CGI脚本**5.**访问CGI脚本**6.**调整S......
  • 在linux上架设Web服务器Apache(Ubuntu)
    欢迎诸位来阅读在下的博文~在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力!江山如画,客心如若,欢迎到访,一展风采文章目录背景1.安装Apache2.启动和检查Apache服务3.配置防火墙4.配置虚拟主机5.启用虚拟主机并重启Apache6.配置域......
  • Linux系统中firewalld防火墙常用的操作命令
    本章将和大家分享Linux系统中firewalld防火墙常用的操作命令。废话不多说,下面我们直接进入主题。一、安装Firewall命令yuminstallfirewalldfirewalld-config二、防火墙的基本操作1、查看防火墙状态使用systemctlstatusfirewalld命令可以查看firewalld服务的状态。也......
  • Linux系统如何挂载分区【精简版】
     导入:当使用插入TF卡或者U盘Linux系统没有自动挂载时,则需要手动挂载分区才能使用。如何挂载分区呢?下面演示挂载分区步骤。    挂载分区简单说来就2步:创建挂载目录(如目录已存在可省略这步);挂载分区。    插入U盘,执行命令fdsik-l查看U盘节点,但是df-h查......
  • 编译原理
    引论语言处理器编译器:编译器将整个程序一次性翻译成机器可执行的目标代码(如二进制代码),然后再执行这个目标代码。解释器:解释器逐行或逐块地将源代码直接翻译成机器可执行的形式,然后立即执行。预处理器:把源程序聚合在一起的任务有时会由一个被称为预处理器(preprocess......
  • Linux学习之文件操作
    程序点击查看代码/*创建命令行参数输入名字的文件存储用户输入的学生姓名年龄和成绩*/#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>#include<sys/types.h>#include<sys/stat.h>structStude......
  • linux C语言remove函数及相关函数
    讯飞星火LinuxC语言中的remove函数用于删除指定的文件或目录。其原型如下:intremove(constchar*pathname);参数:pathname:要删除的文件或目录的路径。返回值:成功时返回0,失败时返回-1。相关函数:rename:用于重命名文件或目录。intrename(constchar*old_path,......
  • 深入解析Linux 进程管理机制(超详细)
    ​ 文字有点多需要理解目录一.进程管理1.进程简介2.静态进程​编辑​编辑3.动态进程top数据列解释4.结束进程5.工作管理命令6.定时任务一.进程管理1.进程简介1)什么是进程:进程是运行在linux中的程序的一个实例,是管理事务的基本单元;进程拥有自己独立的处理......
  • Linux学习笔记:systemd配置文件
    本文更新于2024-08-15,使用systemd252,操作系统为Debian12.6(bookworm)。以为Nginx编写配置文件为例,配置文件路径为/lib/systemd/system/nginxd.service(亦即服务名为nginxd),所有者为root,权限通常为0644。文件内容如下:[Unit]Description=NginxAfter=network.target[Service]......
  • Linux系统优化详解
    一、Linux操作系统优化1、查看操作系统版本号方法一:查看当前系统版本[root@web01~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)方法二:[root@web01~]#hostnamectlStatichostname:oldboyIconname:computer-vmChassis:......