Последнее обновление:2026-10-12
Сборка проектов C++ с Bazel¶
Проекты этого сайта (включая CPlusPlusThings) уже перешли на сборку с Bazel; здесь я записываю весь процесс — от установки с нуля до успешной компиляции, все шаги реально проверены.
1. Установка¶
Возьмём Linux в качестве примера: официально рекомендуется ставить пользовательскую версию installer-скриптом (root не нужен): gpadmin@gpadmin:~$ ./bazel-6.1.1-installer-linux-x86_64.sh --user Bazel installer
Bazel is bundled with software licensed under the GPLv2 with Classpath exception. You can find the sources next to the installer on our release page: https://github.com/bazelbuild/bazel/releases
¶
Build information¶
- Commit Uncompressing......WARNING: Invoking Bazel in batch mode since it is not invoked from within a workspace (below a directory having a WORKSPACE file). Extracting Bazel installation... .
Bazel is now installed!
Make sure you have "/home/gpadmin/bin" in your path.
For bash completion, add the following line to your : source /home/gpadmin/.bazel/bin/bazel-complete.bash
For fish shell completion, link this file into your /home/gpadmin/.config/fish/completions/ directory: ln -s /home/gpadmin/.bazel/bin/bazel.fish /home/gpadmin/.config/fish/completions/bazel.fish
See http://bazel.build/docs/getting-started.html to start a new project!
gpadmin@gpadmin:~$ ls ~/bin/ bazel export PATH="\(PATH:\)HOME/bin" source ~/.bashrc bazel --version bazel build //... ```Bazel сам подтягивает зависимости и кэширует артефакты сборки, поэтому вторая сборка занимает буквально секунды — в этом и состоит суть его преимущества над классическим Make: удалённый/локальный кэш по хэшу содержимого + строгое замыкание зависимостей.
Полную практическую демонстрацию сборки проекта этого сайта смотрите в видео на Bilibili: Выпуск 1: Step By Step — собираем этот проект; лучше всего смотреть вместе с этой статьёй. Вопросы ждём в комментариях~
Похожие темы¶
- Совместная отладка Bazel и LLDB | C++那些事
- CMake: введение и практика | C++那些事
- Введение в управление пакетами Conan для C++ | C++那些事
- C++ Insights: взгляд на этап компиляции | C++那些事
- Интерактивные C++ Jupyter Notebook | C++那些事
- Преобразование C++ string в int | C++那些事
- Отладочный макрос dbg-macro для C++ | C++那些事
- Подробный разбор опций компиляции GCC | C++那些事
- Отладка программ на C++ с помощью GDB | C++那些事
- Расширенная отладка с помощью GDB Python | C++那些事