mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
Merge pull request #23460 from ClickHouse/ditch-gcc-from-docs
Remove gcc from docs
This commit is contained in:
commit
a2170b7818
@ -42,15 +42,12 @@ RUN apt-get update \
|
|||||||
clang-tidy-10 \
|
clang-tidy-10 \
|
||||||
clang-tidy-11 \
|
clang-tidy-11 \
|
||||||
cmake \
|
cmake \
|
||||||
cmake \
|
|
||||||
curl \
|
curl \
|
||||||
g++-9 \
|
g++-9 \
|
||||||
gcc-9 \
|
gcc-9 \
|
||||||
gdb \
|
gdb \
|
||||||
git \
|
git \
|
||||||
gperf \
|
gperf \
|
||||||
gperf \
|
|
||||||
intel-opencl-icd \
|
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libreadline-dev \
|
libreadline-dev \
|
||||||
lld-10 \
|
lld-10 \
|
||||||
@ -61,10 +58,7 @@ RUN apt-get update \
|
|||||||
llvm-11-dev \
|
llvm-11-dev \
|
||||||
moreutils \
|
moreutils \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
ocl-icd-libopencl1 \
|
|
||||||
opencl-headers \
|
|
||||||
pigz \
|
pigz \
|
||||||
pixz \
|
|
||||||
rename \
|
rename \
|
||||||
tzdata \
|
tzdata \
|
||||||
--yes --no-install-recommends
|
--yes --no-install-recommends
|
||||||
|
@ -35,9 +35,6 @@ RUN apt-get update \
|
|||||||
libjemalloc-dev \
|
libjemalloc-dev \
|
||||||
libmsgpack-dev \
|
libmsgpack-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
opencl-headers \
|
|
||||||
ocl-icd-libopencl1 \
|
|
||||||
intel-opencl-icd \
|
|
||||||
unixodbc-dev \
|
unixodbc-dev \
|
||||||
odbcinst \
|
odbcinst \
|
||||||
tzdata \
|
tzdata \
|
||||||
|
@ -14,9 +14,7 @@ RUN apt-get --allow-unauthenticated update -y \
|
|||||||
expect \
|
expect \
|
||||||
gdb \
|
gdb \
|
||||||
gperf \
|
gperf \
|
||||||
gperf \
|
|
||||||
heimdal-multidev \
|
heimdal-multidev \
|
||||||
intel-opencl-icd \
|
|
||||||
libboost-filesystem-dev \
|
libboost-filesystem-dev \
|
||||||
libboost-iostreams-dev \
|
libboost-iostreams-dev \
|
||||||
libboost-program-options-dev \
|
libboost-program-options-dev \
|
||||||
@ -50,9 +48,7 @@ RUN apt-get --allow-unauthenticated update -y \
|
|||||||
moreutils \
|
moreutils \
|
||||||
ncdu \
|
ncdu \
|
||||||
netcat-openbsd \
|
netcat-openbsd \
|
||||||
ocl-icd-libopencl1 \
|
|
||||||
odbcinst \
|
odbcinst \
|
||||||
opencl-headers \
|
|
||||||
openssl \
|
openssl \
|
||||||
perl \
|
perl \
|
||||||
pigz \
|
pigz \
|
||||||
|
@ -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/))
|
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)"
|
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).
|
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
|
``` bash
|
||||||
$ export CC=clang-11
|
$ export CC=clang-11
|
||||||
$ export CXX=clang++-11
|
$ export CXX=clang++-11
|
||||||
```
|
```
|
||||||
|
|
||||||
### Install GCC 10 {#install-gcc-10}
|
Gcc can also be used though it is discouraged.
|
||||||
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
### Checkout ClickHouse Sources {#checkout-clickhouse-sources}
|
### Checkout ClickHouse Sources {#checkout-clickhouse-sources}
|
||||||
|
|
||||||
|
@ -131,17 +131,18 @@ ClickHouse uses several external libraries for building. All of them do not need
|
|||||||
|
|
||||||
## C++ Compiler {#c-compiler}
|
## 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}
|
## 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.
|
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).
|
While inside the `build` directory, configure your build by running CMake. Before the first run, you need to define environment variables that specify compiler.
|
||||||
|
|
||||||
Linux:
|
|
||||||
|
|
||||||
export CC=gcc-10 CXX=g++-10
|
|
||||||
cmake ..
|
|
||||||
|
|
||||||
Mac OS X:
|
|
||||||
|
|
||||||
export CC=clang CXX=clang++
|
export CC=clang CXX=clang++
|
||||||
cmake ..
|
cmake ..
|
||||||
|
@ -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)).
|
**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++`).
|
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.
|
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).
|
**7.** Use static linking with all libraries except those that are difficult to connect to statically (see the output of the `ldd` command).
|
||||||
|
|
||||||
|
@ -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.
|
3. Copy the link to `clickhouse` binary for amd64 or aarch64.
|
||||||
4. ssh to the server and download it with wget:
|
4. ssh to the server and download it with wget:
|
||||||
```bash
|
```bash
|
||||||
|
# These links are outdated, please obtain the fresh link from the "commits" page.
|
||||||
# For amd64:
|
# For amd64:
|
||||||
wget https://clickhouse-builds.s3.yandex.net/0/e29c4c3cc47ab2a6c4516486c1b77d57e7d42643/clickhouse_build_check/gcc-10_relwithdebuginfo_none_bundled_unsplitted_disable_False_binary/clickhouse
|
wget https://clickhouse-builds.s3.yandex.net/0/e29c4c3cc47ab2a6c4516486c1b77d57e7d42643/clickhouse_build_check/gcc-10_relwithdebuginfo_none_bundled_unsplitted_disable_False_binary/clickhouse
|
||||||
# For aarch64:
|
# For aarch64:
|
||||||
|
@ -19,28 +19,17 @@ $ sudo apt-get install git cmake python ninja-build
|
|||||||
|
|
||||||
古いシステムではcmakeの代わりにcmake3。
|
古いシステムでは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 bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
|
||||||
``` 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}
|
|
||||||
|
|
||||||
見て [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
|
``` bash
|
||||||
$ export CC=gcc-10
|
$ export CC=clang
|
||||||
$ export CXX=g++-10
|
$ export CXX=clang++
|
||||||
```
|
```
|
||||||
|
|
||||||
## ツつィツ姪"ツ債ツつケ {#checkout-clickhouse-sources}
|
## ツつィツ姪"ツ債ツつケ {#checkout-clickhouse-sources}
|
||||||
@ -76,7 +65,7 @@ $ cd ..
|
|||||||
- Git(ソースをチェックアウトするためにのみ使用され、ビルドには必要ありません)
|
- Git(ソースをチェックアウトするためにのみ使用され、ビルドには必要ありません)
|
||||||
- CMake3.10以降
|
- CMake3.10以降
|
||||||
- 忍者(推奨)または作る
|
- 忍者(推奨)または作る
|
||||||
- C++コンパイラ:gcc9またはclang8以降
|
- C++コンパイラ:clang11以降
|
||||||
- リンカ:lldまたはgold(古典的なGNU ldは動作しません)
|
- リンカ:lldまたはgold(古典的なGNU ldは動作しません)
|
||||||
- Python(LLVMビルド内でのみ使用され、オプションです)
|
- Python(LLVMビルド内でのみ使用され、オプションです)
|
||||||
|
|
||||||
|
@ -133,19 +133,19 @@ ArchまたはGentooを使用する場合は、おそらくCMakeのインスト
|
|||||||
|
|
||||||
ClickHouseはビルドに複数の外部ライブラリを使用します。 それらのすべては、サブモジュールにあるソースからClickHouseと一緒に構築されているので、別々にインストールする必要はありません。 リストは次の場所で確認できます `contrib`.
|
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`
|
Mac OS X build is also supported. Just run `brew install llvm`
|
||||||
|
|
||||||
Clangを使用する場合は、次のものもインストールできます `libc++` と `lld` あなたがそれが何であるか知っていれば。 を使用して `ccache` また、推奨されます。
|
|
||||||
|
|
||||||
# 建築プロセス {#the-building-process}
|
# 建築プロセス {#the-building-process}
|
||||||
|
|
||||||
@ -158,13 +158,6 @@ ClickHouseを構築する準備ができたので、別のディレクトリを
|
|||||||
|
|
||||||
中の間 `build` cmakeを実行してビルドを構成します。 最初の実行の前に、コンパイラ(この例ではバージョン9gccコンパイラ)を指定する環境変数を定義する必要があります。
|
中の間 `build` cmakeを実行してビルドを構成します。 最初の実行の前に、コンパイラ(この例ではバージョン9gccコンパイラ)を指定する環境変数を定義する必要があります。
|
||||||
|
|
||||||
Linux:
|
|
||||||
|
|
||||||
export CC=gcc-10 CXX=g++-10
|
|
||||||
cmake ..
|
|
||||||
|
|
||||||
Mac OS X:
|
|
||||||
|
|
||||||
export CC=clang CXX=clang++
|
export CC=clang CXX=clang++
|
||||||
cmake ..
|
cmake ..
|
||||||
|
|
||||||
|
@ -136,18 +136,18 @@ ClickHouse использует для сборки некоторое коли
|
|||||||
|
|
||||||
## Компилятор C++ {#kompiliator-c}
|
## Компилятор 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`
|
Сборка под Mac OS X поддерживается только для компилятора Clang. Чтобы установить его выполните `brew install llvm`
|
||||||
|
|
||||||
Если вы решили использовать Clang, вы также можете установить `libc++` и `lld`, если вы знаете, что это такое. При желании, установите `ccache`.
|
|
||||||
|
|
||||||
## Процесс сборки {#protsess-sborki}
|
## Процесс сборки {#protsess-sborki}
|
||||||
|
|
||||||
Теперь вы готовы к сборке ClickHouse. Для размещения собранных файлов, рекомендуется создать отдельную директорию build внутри директории ClickHouse:
|
Теперь вы готовы к сборке ClickHouse. Для размещения собранных файлов, рекомендуется создать отдельную директорию build внутри директории ClickHouse:
|
||||||
@ -158,14 +158,7 @@ ClickHouse использует для сборки некоторое коли
|
|||||||
Вы можете иметь несколько разных директорий (build_release, build_debug) для разных вариантов сборки.
|
Вы можете иметь несколько разных директорий (build_release, build_debug) для разных вариантов сборки.
|
||||||
|
|
||||||
Находясь в директории build, выполните конфигурацию сборки с помощью CMake.
|
Находясь в директории build, выполните конфигурацию сборки с помощью CMake.
|
||||||
Перед первым запуском необходимо выставить переменные окружения, отвечающие за выбор компилятора (в данном примере это - gcc версии 9).
|
Перед первым запуском необходимо выставить переменные окружения, отвечающие за выбор компилятора.
|
||||||
|
|
||||||
Linux:
|
|
||||||
|
|
||||||
export CC=gcc-10 CXX=g++-10
|
|
||||||
cmake ..
|
|
||||||
|
|
||||||
Mac OS X:
|
|
||||||
|
|
||||||
export CC=clang CXX=clang++
|
export CC=clang CXX=clang++
|
||||||
cmake ..
|
cmake ..
|
||||||
|
@ -747,7 +747,7 @@ The dictionary is configured incorrectly.
|
|||||||
Есть два основных варианта проверки на такие ошибки:
|
Есть два основных варианта проверки на такие ошибки:
|
||||||
|
|
||||||
* Исключение с кодом `LOGICAL_ERROR`. Его можно использовать для важных проверок, которые делаются в том числе в релизной сборке.
|
* Исключение с кодом `LOGICAL_ERROR`. Его можно использовать для важных проверок, которые делаются в том числе в релизной сборке.
|
||||||
* `assert`. Такие условия не проверяются в релизной сборке, можно использовать для тяжёлых и опциональных проверок.
|
* `assert`. Такие условия не проверяются в релизной сборке, можно использовать для тяжёлых и опциональных проверок.
|
||||||
|
|
||||||
Пример сообщения, у которого должен быть код `LOGICAL_ERROR`:
|
Пример сообщения, у которого должен быть код `LOGICAL_ERROR`:
|
||||||
`Block header is inconsistent with Chunk in ICompicatedProcessor::munge(). It is a bug!`
|
`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)).
|
**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++`).
|
Используется стандартная библиотека (реализация `libc++`).
|
||||||
|
|
||||||
|
@ -35,28 +35,12 @@ sudo apt-get install git cmake ninja-build
|
|||||||
或cmake3而不是旧系统上的cmake。
|
或cmake3而不是旧系统上的cmake。
|
||||||
或者在早期版本的系统中用 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 bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
|
||||||
``` 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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 拉取 ClickHouse 源码 {#la-qu-clickhouse-yuan-ma-1}
|
## 拉取 ClickHouse 源码 {#la-qu-clickhouse-yuan-ma-1}
|
||||||
|
@ -123,17 +123,13 @@ ClickHouse使用多个外部库进行构建。大多数外部库不需要单独
|
|||||||
|
|
||||||
# C++ 编译器 {#c-bian-yi-qi}
|
# 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++`
|
```bash
|
||||||
|
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
|
||||||
请使用`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`。
|
|
||||||
|
|
||||||
# 构建的过程 {#gou-jian-de-guo-cheng}
|
# 构建的过程 {#gou-jian-de-guo-cheng}
|
||||||
|
|
||||||
@ -146,7 +142,7 @@ Yandex官方当前使用GCC构建ClickHouse,因为它生成的机器代码性
|
|||||||
|
|
||||||
在`build`目录下,通过运行CMake配置构建。 在第一次运行之前,请定义用于指定编译器的环境变量(本示例中为gcc 9 编译器)。
|
在`build`目录下,通过运行CMake配置构建。 在第一次运行之前,请定义用于指定编译器的环境变量(本示例中为gcc 9 编译器)。
|
||||||
|
|
||||||
export CC=gcc-10 CXX=g++-10
|
export CC=clang CXX=clang++
|
||||||
cmake ..
|
cmake ..
|
||||||
|
|
||||||
`CC`变量指代C的编译器(C Compiler的缩写),而`CXX`变量指代要使用哪个C++编译器进行编译。
|
`CC`变量指代C的编译器(C Compiler的缩写),而`CXX`变量指代要使用哪个C++编译器进行编译。
|
||||||
|
@ -696,7 +696,7 @@ auto s = std::string{"Hello"};
|
|||||||
|
|
||||||
**2.** 语言: C++20.
|
**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++`)。
|
使用标准库 (`libc++`)。
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user