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

怎么做网站广告代理商商业软文

怎么做网站广告代理商,商业软文,网络架构图怎么画,做画册好的网站文章目录 1. What is bazel?2. bazel的核心原理2.1 bazel的构建模型2.2 bazel的核心概念2.3 bazel的关键特性 3. bazel的使用3.1 划分项目结构3.2 编写BUILD文件3.3 bazel常用命令3.4 bazel依赖管理 参考内容 1. What is bazel? bazel是一个开源的构建工具,它基于…

文章目录

  • 1. What is bazel?
  • 2. bazel的核心原理
    • 2.1 bazel的构建模型
    • 2.2 bazel的核心概念
    • 2.3 bazel的关键特性
  • 3. bazel的使用
    • 3.1 划分项目结构
    • 3.2 编写BUILD文件
    • 3.3 bazel常用命令
    • 3.4 bazel依赖管理
  • 参考内容

1. What is bazel?

bazel是一个开源的构建工具,它基于声明式构建语言和精确的依赖管理,一般大型项目的构建会使用bazel。

2. bazel的核心原理

2.1 bazel的构建模型

  • 依赖图DAG:bazel基于依赖图构建。bazel将构建过程建模为有向无环图,每个节点表示一个构建目标(如源文件、库、二进制等),边表示依赖关系。(基于依赖图构建的优势:重构的时候可仅重新构建受影响的节点,实现高效增量构建)
  • 内容寻址存储CAS:每个构件产物(如.o文件)的哈希值由其内容决定,避免重复构建相同内容。
  • 沙箱机制:在隔离环境中执行构建动作(如编译、链接),确保构建过程不受主机环境影响,提升可重现性。

2.2 bazel的核心概念

  • WORKSPACE:WORKSPACE文件一般位于项目的根目录下,用于定义外部依赖和全局配置;
  • BUILD:每个目录下的BUILD文件或BUILD.bazel文件,用于声明本目录的构建目标(如cc_library)
  • Target:目标,是BUILD文件中定义的最小构建单元,比如库、二进制文件等;
  • Rule:规则,用于描述如何从输入(源文件、依赖)生成输出(如编译、打包)。

2.3 bazel的关键特性

  • 增量构建:即仅构建受代码变更影响的目标;
  • 分布式构建:支持将构建任务分发到多台机器(但需要配置远程执行环境);
  • 远程缓存:共享构建缓存,加速团队协作;
  • 跨平台:支持多操作系统,同一构建描述文件可跨平台使用

3. bazel的使用

3.1 划分项目结构

首先需要划分项目结构,确定每个BUILD文件的位置。假设项目结构如下:

my_project/
├── WORKSPACE          # 工作区配置文件(可留空)
├── src/
│   ├── main.c         # 主程序
│   ├── lib/
│   │   ├── utils.c   # 库源码
│   │   └── utils.h
│   └── BUILD         # 构建规则
└── tests/└── test.c        # 测试代码

3.2 编写BUILD文件

示例:

# src/BUILD# 定义静态库
cc_library(name = "utils",           # 目标名称srcs = ["lib/utils.c"],   # 源文件hdrs = ["lib/utils.h"],   # 头文件visibility = ["//visibility:public"],  # 对其他目录可见
)# 定义可执行文件
cc_binary(name = "main",        # 目标名称srcs = ["main.c"],    # 主程序源文件deps = [":utils"],    # 依赖的库
)# 定义测试
cc_test(name = "test_utils",  # 测试目标名称srcs = ["test.c"],    # 测试代码deps = [":utils"],    # 依赖的库
)

3.3 bazel常用命令

  1. 构建目标
    # 示例
    bazel build //src:main # 用于构建src目录下的main目标,在BUILD文件中包含对应的target
    # 命令格式
    bazel build [flags] <targets...>
    # 常用的目标模式
    //src:main # 指定具体目标
    //src/... # src目录下的所有目标
    //... # 整个工作区所有目标
    @repo//path:target # 外部依赖目标
    
  2. 运行程序
    bazel run //src:main # 构建并运行main目标
    
  3. 执行测试
    bazel test //src:test_utils
    
  4. 清理构建缓存
    bazel clean # 清理所有的构建产物
    

3.4 bazel依赖管理

内部依赖:使用//path/to:target语法引用项目内目标;
外部依赖:需要在WORKSPACE文件中声明,并在BUILD文件中使用外部依赖。例如:
当前项目my_project依赖子模块include,include中包含了my_project依赖的头文件,在WORKSPACE中声明:

# new_local_repository规则用于将本地目录或文件引入bazel工作区作为外部依赖;该规则将普通目录转换为bazel仓库
load("@bazel_tools//tools/build_defs/repo:local.bzl", "new_local_repository")
new_local_repository(name = "include" # 仓库名称path = "include" # 绝对路径或相对路径build_file = "include.BUILD" # 可选,指定构建规则文件
)

src/BUILD文件中引用外部依赖:

cc_binary(name = "main",        # 目标名称srcs = ["main.c"],    # 主程序源文件deps = [":utils","@include//:include_headers" # 引用外部依赖。假设include.BUILD中包含了名为include_headers的目标],    
)

参考内容

官方文档: https://bazel.build

http://www.dtcms.com/wzjs/482876.html

相关文章:

  • 检测网站访问量他达那非副作用太强了
  • 简述架设多个web网站的方法百度学术论文查重入口
  • 精品建站seo软件优化工具软件
  • 织梦 公司网站模板国内免费域名注册
  • wordpress网站登录被篡改线上推广方式有哪些
  • 扁平式网站源码大数据获客系统
  • 网站制作需求文档网站点击排名优化
  • 做网站开发要学什么软件宁波seo关键词排名
  • 汕头网站关键词推广seo诊断分析
  • 深圳网站关键词优化公司小程序开发软件
  • 怎么做自己的发卡网站6百度网盘资源链接入口
  • 一站式服务工作总结平台怎么推广
  • wordpress html5中文主题怎么制作seo搜索优化
  • 网站建设这一行业怎样网络软文推广网站
  • 如何做好网站针对搜索引擎的seo推广什么软件可以长期赚钱
  • 长沙岳麓区做网站郑州网站关键词排名
  • 做网站工资多钱广告营销是做什么的
  • 网站建设体会合肥seo优化公司
  • 成都信用建设网站螺蛳粉的软文推广
  • 做年会的网站seo怎么优化软件
  • wap网站建设哪家好游戏代理是怎么赚钱的如何代理游戏
  • 在线教育网站模板数据分析师就业前景
  • 北京企业网站建设飞沐整站优化价格
  • 知乎网站建设入门书vi设计
  • 大气手机网站模板免费下载设计网页
  • 门户网站建设 请示百度图片搜索
  • 东莞市seo网络推广企业北京seo收费
  • 网站建设的图片尺寸应该是像素网络营销的认识与理解
  • 深圳建科院公司网站天津企业seo
  • 网络爬虫需要自己做网站吗google官方下载app