Remove gcc from docs

This commit is contained in:
Alexey Milovidov 2021-04-22 04:20:03 +03:00
parent b1081bcf54
commit 8cb0e5579a
14 changed files with 49 additions and 145 deletions

View File

@ -42,15 +42,12 @@ RUN apt-get update \
clang-tidy-10 \
clang-tidy-11 \
cmake \
cmake \
curl \
g++-9 \
gcc-9 \
gdb \
git \
gperf \
gperf \
intel-opencl-icd \
libicu-dev \
libreadline-dev \
lld-10 \
@ -61,10 +58,7 @@ RUN apt-get update \
llvm-11-dev \
moreutils \
ninja-build \
ocl-icd-libopencl1 \
opencl-headers \
pigz \
pixz \
rename \
tzdata \
--yes --no-install-recommends

View File

@ -35,9 +35,6 @@ RUN apt-get update \
libjemalloc-dev \
libmsgpack-dev \
libcurl4-openssl-dev \
opencl-headers \
ocl-icd-libopencl1 \
intel-opencl-icd \
unixodbc-dev \
odbcinst \
tzdata \

View File

@ -14,9 +14,7 @@ RUN apt-get --allow-unauthenticated update -y \
expect \
gdb \
gperf \
gperf \
heimdal-multidev \
intel-opencl-icd \
libboost-filesystem-dev \
libboost-iostreams-dev \
libboost-program-options-dev \
@ -50,9 +48,7 @@ RUN apt-get --allow-unauthenticated update -y \
moreutils \
ncdu \
netcat-openbsd \
ocl-icd-libopencl1 \
odbcinst \
opencl-headers \
openssl \
perl \
pigz \

View File

@ -27,53 +27,20 @@ Or cmake3 instead of cmake on older systems.
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
```bash
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
For other Linux distribution - check the availability of the [prebuild packages](https://releases.llvm.org/download.html) or build clang [from sources](https://clang.llvm.org/get_started.html).
#### Use clang-11 for Builds {#use-gcc-10-for-builds}
#### Use clang-11 for Builds
``` bash
$ export CC=clang-11
$ export CXX=clang++-11
```
### Install GCC 10 {#install-gcc-10}
We recommend building ClickHouse with clang-11, GCC-10 also supported, but it is not used for production builds.
If you want to use GCC-10 there are several ways to install it.
#### Install from Repository {#install-from-repository}
On Ubuntu 19.10 or newer:
$ sudo apt-get update
$ sudo apt-get install gcc-10 g++-10
#### Install from a PPA Package {#install-from-a-ppa-package}
On older Ubuntu:
``` bash
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-10 g++-10
```
#### Install from Sources {#install-from-sources}
See [utils/ci/build-gcc-from-sources.sh](https://github.com/ClickHouse/ClickHouse/blob/master/utils/ci/build-gcc-from-sources.sh)
#### Use GCC 10 for Builds {#use-gcc-10-for-builds}
``` bash
$ export CC=gcc-10
$ export CXX=g++-10
```
Gcc can also be used though it is discouraged.
### Checkout ClickHouse Sources {#checkout-clickhouse-sources}

View File

@ -131,17 +131,18 @@ ClickHouse uses several external libraries for building. All of them do not need
## C++ Compiler {#c-compiler}
Compilers GCC starting from version 10 and Clang version 8 or above are supported for building ClickHouse.
Compilers Clang starting from version 11 is supported for building ClickHouse.
Official Yandex builds currently use GCC because it generates machine code of slightly better performance (yielding a difference of up to several percent according to our benchmarks). And Clang is more convenient for development usually. Though, our continuous integration (CI) platform runs checks for about a dozen of build combinations.
Clang should be used instead of gcc. Though, our continuous integration (CI) platform runs checks for about a dozen of build combinations.
To install GCC on Ubuntu run: `sudo apt install gcc g++`
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
Check the version of gcc: `gcc --version`. If it is below 10, then follow the instruction here: https://clickhouse.tech/docs/en/development/build/#install-gcc-10.
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
Mac OS X build is supported only for Clang. Just run `brew install llvm`
Mac OS X build is also supported. Just run `brew install llvm`
If you decide to use Clang, you can also install `libc++` and `lld`, if you know what it is. Using `ccache` is also recommended.
## The Building Process {#the-building-process}
@ -152,14 +153,7 @@ Now that you are ready to build ClickHouse we recommend you to create a separate
You can have several different directories (build_release, build_debug, etc.) for different types of build.
While inside the `build` directory, configure your build by running CMake. Before the first run, you need to define environment variables that specify compiler (version 10 gcc compiler in this example).
Linux:
export CC=gcc-10 CXX=g++-10
cmake ..
Mac OS X:
While inside the `build` directory, configure your build by running CMake. Before the first run, you need to define environment variables that specify compiler.
export CC=clang CXX=clang++
cmake ..

View File

@ -701,7 +701,7 @@ But other things being equal, cross-platform or portable code is preferred.
**2.** Language: C++20 (see the list of available [C++20 features](https://en.cppreference.com/w/cpp/compiler_support#C.2B.2B20_features)).
**3.** Compiler: `gcc`. At this time (August 2020), the code is compiled using version 9.3. (It can also be compiled using `clang 8`.)
**3.** Compiler: `clang`. At this time (April 2021), the code is compiled using clang version 11. (It can also be compiled using `gcc` version 10, but it's untested and not suitable for production usage).
The standard library is used (`libc++`).
@ -711,7 +711,7 @@ The standard library is used (`libc++`).
The CPU instruction set is the minimum supported set among our servers. Currently, it is SSE 4.2.
**6.** Use `-Wall -Wextra -Werror` compilation flags.
**6.** Use `-Wall -Wextra -Werror` compilation flags. Also `-Weverything` is used with few exceptions.
**7.** Use static linking with all libraries except those that are difficult to connect to statically (see the output of the `ldd` command).

View File

@ -12,6 +12,7 @@ With this instruction you can run basic ClickHouse performance test on any serve
3. Copy the link to `clickhouse` binary for amd64 or aarch64.
4. ssh to the server and download it with wget:
```bash
# These links are outdated, please obtain the fresh link from the "commits" page.
# For amd64:
wget https://clickhouse-builds.s3.yandex.net/0/e29c4c3cc47ab2a6c4516486c1b77d57e7d42643/clickhouse_build_check/gcc-10_relwithdebuginfo_none_bundled_unsplitted_disable_False_binary/clickhouse
# For aarch64:

View File

@ -19,28 +19,17 @@ $ sudo apt-get install git cmake python ninja-build
古いシステムではcmakeの代わりにcmake3。
## GCC9のインストール {#install-gcc-10}
## Clang 11 のインストール
これを行うにはいくつかの方法があります。
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
### PPAパッケージからインストール {#install-from-a-ppa-package}
``` bash
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update
$ sudo apt-get install gcc-10 g++-10
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
### ソースからインスト {#install-from-sources}
見て [utils/ci/build-gcc-from-sources.sh](https://github.com/ClickHouse/ClickHouse/blob/master/utils/ci/build-gcc-from-sources.sh)
## ビルドにGCC9を使用する {#use-gcc-10-for-builds}
``` bash
$ export CC=gcc-10
$ export CXX=g++-10
$ export CC=clang
$ export CXX=clang++
```
## ツつィツ姪"ツ債ツつケ {#checkout-clickhouse-sources}
@ -76,7 +65,7 @@ $ cd ..
- Gitソースをチェックアウトするためにのみ使用され、ビルドには必要ありません)
- CMake3.10以降
- 忍者(推奨)または作る
- C++コンパイラ:gcc9またはclang8以降
- C++コンパイラ:clang11以降
- リンカ:lldまたはgold(古典的なGNU ldは動作しません)
- Python(LLVMビルド内でのみ使用され、オプションです)

View File

@ -133,19 +133,19 @@ ArchまたはGentooを使用する場合は、おそらくCMakeのインスト
ClickHouseはビルドに複数の外部ライブラリを使用します。 それらのすべては、サブモジュールにあるソースからClickHouseと一緒に構築されているので、別々にインストールする必要はありません。 リストは次の場所で確認できます `contrib`.
# C++コンパイラ {#c-compiler}
## C++ Compiler {#c-compiler}
ClickHouseのビルドには、バージョン9以降のGCCとClangバージョン8以降のコンパイラがサポートされます。
Compilers Clang starting from version 11 is supported for building ClickHouse.
公式のYandexビルドは、わずかに優れたパフォーマンスのマシンコードを生成するため、GCCを使用しています私たちのベンチマークに応じて最大数パーセントの そしてClangは開発のために通常より便利です。 が、当社の継続的インテグレーションCI)プラットフォームを運チェックのための十数の組み合わせとなります。
Clang should be used instead of gcc. Though, our continuous integration (CI) platform runs checks for about a dozen of build combinations.
UBUNTUにGCCをインストールするには: `sudo apt install gcc g++`
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
Gccのバージョンを確認する: `gcc --version`. の場合は下記9その指示に従う。https://clickhouse.tech/docs/ja/development/build/#install-gcc-10.
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
Mac OS XのビルドはClangでのみサポートされています。 ちょうど実行 `brew install llvm`
Clangを使用する場合は、次のものもインストールできます `libc++``lld` あなたがそれが何であるか知っていれば。 を使用して `ccache` また、推奨されます。
Mac OS X build is also supported. Just run `brew install llvm`
# 建築プロセス {#the-building-process}
@ -158,13 +158,6 @@ ClickHouseを構築する準備ができたので、別のディレクトリを
中の間 `build` cmakeを実行してビルドを構成します。 最初の実行の前に、コンパイラこの例ではバージョン9gccコンパイラを指定する環境変数を定義する必要があります。
Linux:
export CC=gcc-10 CXX=g++-10
cmake ..
Mac OS X:
export CC=clang CXX=clang++
cmake ..

View File

@ -136,18 +136,18 @@ ClickHouse использует для сборки некоторое коли
## Компилятор C++ {#kompiliator-c}
В качестве компилятора C++ поддерживается GCC начиная с версии 9 или Clang начиная с версии 8.
В качестве компилятора C++ поддерживается Clang начиная с версии 11.
Официальные сборки от Яндекса, на данный момент, используют GCC, так как он генерирует слегка более производительный машинный код (разница в среднем до нескольких процентов по нашим бенчмаркам). Clang обычно более удобен для разработки. Впрочем, наша среда continuous integration проверяет около десятка вариантов сборки.
Впрочем, наша среда continuous integration проверяет около десятка вариантов сборки, включая gcc, но сборка с помощью gcc непригодна для использования в продакшене.
Для установки GCC под Ubuntu, выполните: `sudo apt install gcc g++`.
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
Проверьте версию gcc: `gcc --version`. Если версия меньше 10, то следуйте инструкции: https://clickhouse.tech/docs/ru/development/build/#install-gcc-10.
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
Сборка под Mac OS X поддерживается только для компилятора Clang. Чтобы установить его выполните `brew install llvm`
Если вы решили использовать Clang, вы также можете установить `libc++` и `lld`, если вы знаете, что это такое. При желании, установите `ccache`.
## Процесс сборки {#protsess-sborki}
Теперь вы готовы к сборке ClickHouse. Для размещения собранных файлов, рекомендуется создать отдельную директорию build внутри директории ClickHouse:
@ -158,14 +158,7 @@ ClickHouse использует для сборки некоторое коли
Вы можете иметь несколько разных директорий (build_release, build_debug) для разных вариантов сборки.
Находясь в директории build, выполните конфигурацию сборки с помощью CMake.
Перед первым запуском необходимо выставить переменные окружения, отвечающие за выбор компилятора (в данном примере это - gcc версии 9).
Linux:
export CC=gcc-10 CXX=g++-10
cmake ..
Mac OS X:
Перед первым запуском необходимо выставить переменные окружения, отвечающие за выбор компилятора.
export CC=clang CXX=clang++
cmake ..

View File

@ -747,7 +747,7 @@ The dictionary is configured incorrectly.
Есть два основных варианта проверки на такие ошибки:
* Исключение с кодом `LOGICAL_ERROR`. Его можно использовать для важных проверок, которые делаются в том числе в релизной сборке.
* `assert`. Такие условия не проверяются в релизной сборке, можно использовать для тяжёлых и опциональных проверок.
* `assert`. Такие условия не проверяются в релизной сборке, можно использовать для тяжёлых и опциональных проверок.
Пример сообщения, у которого должен быть код `LOGICAL_ERROR`:
`Block header is inconsistent with Chunk in ICompicatedProcessor::munge(). It is a bug!`
@ -780,7 +780,7 @@ The dictionary is configured incorrectly.
**2.** Язык - C++20 (см. список доступных [C++20 фич](https://en.cppreference.com/w/cpp/compiler_support#C.2B.2B20_features)).
**3.** Компилятор - `gcc`. На данный момент (август 2020), код собирается версией 9.3. (Также код может быть собран `clang` версий 10 и 9)
**3.** Компилятор - `clang`. На данный момент (апрель 2021), код собирается версией 11. (Также код может быть собран `gcc` версии 10, но такая сборка не тестируется и непригодна для продакшена).
Используется стандартная библиотека (реализация `libc++`).

View File

@ -35,28 +35,12 @@ sudo apt-get install git cmake ninja-build
或cmake3而不是旧系统上的cmake。
或者在早期版本的系统中用 cmake3 替代 cmake
## 安装 GCC 10 {#an-zhuang-gcc-10}
## 安装 Clang
有几种方法可以做到这一点。
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
### 安装 PPA 包 {#an-zhuang-ppa-bao}
``` bash
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-10 g++-10
```
### 源码安装 gcc {#yuan-ma-an-zhuang-gcc}
请查看 [utils/ci/build-gcc-from-sources.sh](https://github.com/ClickHouse/ClickHouse/blob/master/utils/ci/build-gcc-from-sources.sh)
## 使用 GCC 10 来编译 {#shi-yong-gcc-10-lai-bian-yi}
``` bash
export CC=gcc-10
export CXX=g++-10
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
## 拉取 ClickHouse 源码 {#la-qu-clickhouse-yuan-ma-1}

View File

@ -123,17 +123,13 @@ ClickHouse使用多个外部库进行构建。大多数外部库不需要单独
# C++ 编译器 {#c-bian-yi-qi}
GCC编译器从版本9开始以及Clang版本\>=8都可支持构建ClickHouse。
We support clang starting from version 11.
Yandex官方当前使用GCC构建ClickHouse因为它生成的机器代码性能较好根据测评最多可以相差几个百分点。Clang通常可以更加便捷的开发。我们的持续集成CI平台会运行大约十二种构建组合的检查。
On Ubuntu/Debian you can use the automatic installation script (check [official webpage](https://apt.llvm.org/))
在Ubuntu上安装GCC请执行`sudo apt install gcc g++`
请使用`gcc --version`查看gcc的版本。如果gcc版本低于9请参考此处的指示https://clickhouse.tech/docs/zh/development/build/#an-zhuang-gcc-10 。
在Mac OS X上安装GCC请执行`brew install gcc`
如果您决定使用Clang还可以同时安装 `libc++`以及`lld`,前提是您也熟悉它们。此外,也推荐使用`ccache`。
```bash
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
```
# 构建的过程 {#gou-jian-de-guo-cheng}
@ -146,7 +142,7 @@ Yandex官方当前使用GCC构建ClickHouse因为它生成的机器代码性
在`build`目录下通过运行CMake配置构建。 在第一次运行之前请定义用于指定编译器的环境变量本示例中为gcc 9 编译器)。
export CC=gcc-10 CXX=g++-10
export CC=clang CXX=clang++
cmake ..
`CC`变量指代C的编译器C Compiler的缩写而`CXX`变量指代要使用哪个C++编译器进行编译。

View File

@ -696,7 +696,7 @@ auto s = std::string{"Hello"};
**2.** 语言: C++20.
**3.** 编译器: `gcc`。 此时2020年08月代码使用9.3版编译。(它也可以使用`clang 8` 编译
**3.** 编译器: `clang`。 此时2021年03月代码使用11版编译。它也可以使用`gcc` 编译 but it is not suitable for production
使用标准库 (`libc++`)。