首页 > 其他分享 >学习记录:bazel和cmake运行终端指令

学习记录:bazel和cmake运行终端指令

时间:2024-04-05 16:04:56浏览次数:17  
标签:std cmake Bazel bazel 指令 构建 world main

Bazel和CMake都是用于构建软件项目的工具,但它们之间有一些重要的区别和特点:

  1. Bazel:

    • Bazel是由Google开发的构建和测试工具,用于构建大规模的软件项目。
    • 它采用一种称为“基于规则”的构建系统,它利用构建规则和依赖关系来自动化构建过程。
    • Bazel支持多种编程语言,包括C++、Java、Python等,并提供了高度并行化的构建过程,能够高效地处理大型项目。
    • Bazel具有强大的缓存和增量构建功能,能够快速地重新构建项目,并且在构建结果的可重现性和一致性方面表现出色。
  2. CMake:

    • CMake是一个跨平台的构建系统,用于管理和构建C++项目。
    • 它采用基于文本的CMakeLists.txt文件来描述项目的结构和构建过程,允许开发人员使用简洁的语法定义项目的构建规则。
    • CMake生成特定于平台的构建文件(如Makefile、Visual Studio项目文件等),然后使用相应的构建工具进行实际的构建过程。
    • CMake具有广泛的平台和编译器支持,可以方便地在不同的操作系统和开发环境中使用,并且易于学习和使用。

虽然Bazel和CMake都可以用于构建C++项目,但它们在设计理念、构建方式和功能特性上有所不同。选择使用哪种工具取决于项目的规模、复杂性和团队的偏好,以及所需的特定功能和性能要求。

windows

cmake

在这里插入图片描述

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(Example)

add_executable(Example main.cpp)

main.cpp

#include <iostream>

int main(){
    std::cout<< "hello22" <<std::endl;
    std::cout<< "world22" <<std::endl;
    return 0;
}

终端指令

终端打开该文件夹,输入以下指令

cmake .

在这里插入图片描述

cmake --build .

在这里插入图片描述

cd Debug
.\Example.exe

在这里插入图片描述

bazel

在这里插入图片描述

BUILD

load("@rules_cc//cc:defs.bzl", "cc_binary")

cc_binary(
    name = "hello-world",
    srcs = ["hello-world.cc"],
)

hello-world.cc

#include <ctime>
#include <string>
#include <iostream>

std::string get_greet(const std::string& who) {
  return "Hello " + who;
}

void print_localtime() {
  std::time_t result = std::time(nullptr);
  std::cout << std::asctime(std::localtime(&result));
}

int main(int argc, char** argv) {
  std::string who = "world";
  if (argc > 1) {
    who = argv[1];
  }
  std::cout << get_greet(who) << std::endl;
  print_localtime();
  return 0;
}

终端运行指令

 bazel build hello-world

在这里插入图片描述
找到exe文件运行

 .\bazel-bin\main\hello-world.exe

在这里插入图片描述

Ubuntu

cmake

touch main.c CMakeLists.txt

CMakeLists.txt

cmake_minimum_required (VERSION 2.8)

project (demo)

add_executable(main main.c)

main.c

#include <stdio.h>

int main(void)
{
	printf("Hello World\n");
	return 0;
}

终端指令

cmake build .

找到可执行文件,也就是CMakeLists.txt里面add_executable里面的第一个参数

./main

在这里插入图片描述

…更新中…

标签:std,cmake,Bazel,bazel,指令,构建,world,main
From: https://blog.csdn.net/m0_51738372/article/details/137399308

相关文章

  • Pdf文件格式解析:stream中的变换矩阵指令 1 0 0 -1 0 841.9 cm
    解释100-10841.9cm在PDF文件中的变换矩阵指令100-10841.9cm中,前四个数值100-1组成了一个2x2的线性变换部分,用于描述旋转和缩放操作,而不涉及平移。这里,100-1的每一个数字都有特定的意义:第一个数字1:这是矩阵的第一行第一列的元素。它决定了x坐标在......
  • 单片机数据传递类指令
    单片机数据传递类指令(3)以直接地址为目的操作数的指令MOVdirect,A 例: MOV20H,AMOVdirect,RnMOV20H,R1MOVdirect1,direct2MOV20H,30HMOVdirect,@RiMOV20H,@R1MOVdirect,#dataMOV20H,#34H(4)以间接地址为目的操作数的指令MOV@Ri,A 例:MOV@R0,AMOV......
  • 单片机寻址方式与指令系统
    通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051单片机的指令部份。一、概述1、指令的格式  我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机......
  • Linux上CMAKE的使用
    Linux上CMAKE的使用简单使用格式如下:cmake_minimum_required(VERSION3.0)#最低版本3.0project(main)#项目名称#配置编译器set(CMAKE_CXX_FLAGS${CMAKE_CXX_FLAGS}-g)#配置头文件搜索路径#include_directories()#配置库文件搜索路径#link_directories()#......
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(四)- 配置和设置指令(vsetvli/vsetivli
      1.引言以下是《riscv-v-spec-1.0.pdf》文档的关键内容:这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量算术指令格式、向量整数和浮点算术......
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(五)- 向量加载和存储
      1.引言以下是《riscv-v-spec-1.0.pdf》文档的关键内容:这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量算术指令格式、向量整数和浮点算术......
  • QCOM Camera常用指令
    参考资料:Camera疑难杂症_yaoming168的博客-CSDN博客 1、骁龙相机开发者模式adbshellsetproppersist.sys.camera.devoption.debug100 2、查看上层得到的cameraid数量adbshelldumpsysmedia.camera>camdump.txt 3、打开骁龙相机adbshellamstart-nor......
  • 03-A64指令集1——加载与存储指令
    本章思考题A64指令集有什么特点?答:它可以处理64位宽的寄存器和数据并且使用64位的指针来访问内存。A64指令集有如下特点。具有特有的指令编码格式。只能运行在AArch64状态。指令的宽度为32位。A64指令集支持64位宽的数据和地址寻址,为什么指令的编码宽度只有32位?答:因为A......
  • 元素拖拽?一个vue指令搞定
    说在前面......
  • C语言入门:预处理器指令详解
    目录一宏定义A.不带参数的宏定义:B.带参数的宏定义(宏函数):C.宏定义的注意事项:二条件编译A.#ifdef/#ifndef:B.#if/#elif/#else/#endif:C.#pragmaonce:三头文件包含A.#include:B.头文件包含顺序:C.编译警告:四C语言的优缺点A.C语言的优点:B.C语言的缺点:五C......