返回

在 Ubuntu 20 上用 Bazel 和 Clang 构建 C++20 项目

开发工具





## 概述

C++20 是 C++ 编程语言的最新版本,它引入了许多新特性和改进,例如模块、协程、概念等。为了能够使用 C++20 开发项目,我们需要使用支持 C++20 的编译器和构建工具。

## 工具准备

### 1. 安装 Bazel

Bazel 是一个强大的构建系统,它可以帮助我们轻松地构建 C++ 项目。我们可以从 Bazel 官网下载并安装 Bazel。

### 2. 安装 Clang

Clang 是一个 C/C++ 编译器,它支持 C++20。我们可以从 Clang 官网下载并安装 Clang。

### 3. 安装其他依赖

除了 Bazel 和 Clang 之外,我们还需要安装其他依赖,例如 glibc、zlib、openssl 等。我们可以使用以下命令安装这些依赖:

sudo apt install glibc zlib openssl


## 项目准备

现在,我们可以创建一个 C++20 项目。

1. 创建一个项目目录,例如:

mkdir cpp20-project
cd cpp20-project


2. 在项目目录中创建一个 `BUILD` 文件,内容如下:

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

http_archive(
name = "com_google_googletest",
sha256 = "9bf1fe410645d93e1c16c3d6535842c879438c2946914764c2b7d10852485a5d",
urls = ["https://github.com/google/googletest/archive/refs/heads/main.zip"],
)

cc_test(
name = "hello_world",
srcs = ["hello_world.cc"],
deps = ["@com_google_googletest//:gtest"],
)


3. 在项目目录中创建一个 `hello_world.cc` 文件,内容如下:

#include <gtest/gtest.h>

TEST(HelloWorldTest, BasicTest) {
EXPECT_EQ(1, 1);
}


## 构建项目

现在,我们可以使用 Bazel 构建项目。

1. 在项目目录中执行以下命令:

bazel build //:hello_world


2. 如果构建成功,我们可以看到 `bazel-bin/hello_world` 文件。

## 运行项目

现在,我们可以运行项目。

1. 在项目目录中执行以下命令:

bazel run //:hello_world


2. 如果运行成功,我们可以看到以下输出:

[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from HelloWorldTest
[ RUN ] HelloWorldTest.BasicTest
[ OK ] HelloWorldTest.BasicTest (0 ms)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (0 ms total)
[ PASSED ] 1 test.


## 总结

本文介绍了如何在 Ubuntu 20 系统上使用 Bazel 和 Clang 构建 C++20 项目。我们还提供了详细的操作步骤和示例代码。同时,本文还提供了 Windows 用户使用 WSL 构建 C++20 项目的解决方案。希望本文能够对大家有所帮助。