【后台开发】相关知识点

使用构建系统时,如何引用其他模块

相比于编译器,构建系统可以处理更复杂的依赖,多种语言的混合编译,有些甚至支持云编译(把代码push到远方编译平台,调动编译集群,再把编译产物pull回本地),最终交付给我们二进制文件(可执行文件,静态库文件...)。在使用了构建系统时,当我们要引用其他模块代码时,不同于以往简单的import,include就可以,需要额外维护一份BUILD文件。下面给出了普通引用,和引用protoBuffer结构的例子。

  • BUILD文件中deps内加入被引用的模块名
  • 当前cpp 头部加上,#include "XXX.h"
cc_library(
  name = '编译后的library名',
  srcs = [
    '源码',
  ],
  hdrs = [
    '声明源码的头文件',
  ],
  deps = [
    '依赖的其他library的绝对路径:library名',
    ':依赖的本路径下其他library名',
  ],
  includes = ['.', hdrs中除当前路径的其他路径],
  copts = [
    '-Wall',
    '-Werror',
  ],
  linkopts = [
  ],
  visibility = ['//visibility:public'],
)

 

  • 如果要引用protobuffer对应的结构,BUILD内声明如下:
skproto2struct(
  name = 'XXX_pb_h',
  srcs = [
    'XXX.proto',
  ],
  outs = [
    'XXX.pb.cc',
    'XXX.pb.h',
  ],
  deps = [
    "依赖的其他proto路径:依赖的其他proto名.proto",
  ],
)
  • 当前cpp 头部加上,#include "XXX.pb.h"

如何查看某个第三方函数的具体内容

如何查看第三方数据结构的具体定义

一般通过#include PACKAGE_NAMEclient.h或者PACKAGE_NAME.pb.h来引用protobuffer数据格式。具体在函数中,

protobuffer package名::message名 自定义变量名;
  • 要查看具体结构时,通过BUILD文件。BUILD文件中deps中一般会包括 PATH:PACKAGE_NAMEclient,这里的PATH就是protobuffer package所在的路径。
  • protobuffer和pb.h,client.h逻辑关系如下(proto -> pb.cc/pb.h -> protoclient静态库):

BUILD内通过skproto2struct声明,构建系统将对PROTO生成PROTO.pb.cc和PROTO.pb.h文件。BUILD内通过声明cc_library生成PROTOclient静态库,其中hdrs使用到了PROTO.pb.h, srcs使用到了PROTO.pb.cc。

如何获取数据

基本数据结构操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值