Comment Construire ClickHouse sur Linux pour Mac OS X 

C'est pour le cas où vous avez machine Linux et que vous voulez utiliser pour construire clickhouse binaire qui s'exécutera sur OS X. Ceci est destiné aux contrôles d'intégration continus qui s'exécutent sur des serveurs Linux. Si vous voulez construire ClickHouse directement sur Mac OS X, puis procéder à une autre instruction.

Le cross-build pour Mac OS X est basé sur le Instructions de construction, suivez d'abord.

Installer Clang-8 

Suivez les instructions de https://apt.llvm.org/ pour votre configuration Ubuntu ou Debian.
Par exemple les commandes pour Bionic sont comme:

sudo echo "deb [trusted=yes] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main" >> /etc/apt/sources.list
sudo apt-get install clang-8

Installer Un Ensemble D'Outils De Compilation Croisée 

Souvenons nous du chemin où nous installons cctools comme ${CCTOOLS}

mkdir ${CCTOOLS}

git clone https://github.com/tpoechtrager/apple-libtapi.git
cd apple-libtapi
INSTALLPREFIX=${CCTOOLS} ./build.sh
./install.sh
cd ..

git clone https://github.com/tpoechtrager/cctools-port.git
cd cctools-port/cctools
./configure --prefix=${CCTOOLS} --with-libtapi=${CCTOOLS} --target=x86_64-apple-darwin
make install

En outre, nous devons télécharger macOS X SDK dans l'arbre de travail.

cd ClickHouse
wget 'https://github.com/phracker/MacOSX-SDKs/releases/download/10.14-beta4/MacOSX10.14.sdk.tar.xz'
mkdir -p build-darwin/cmake/toolchain/darwin-x86_64
tar xJf MacOSX10.14.sdk.tar.xz -C build-darwin/cmake/toolchain/darwin-x86_64 --strip-components=1

Construire ClickHouse 

cd ClickHouse
mkdir build-osx
CC=clang-8 CXX=clang++-8 cmake . -Bbuild-osx -DCMAKE_TOOLCHAIN_FILE=cmake/darwin/toolchain-x86_64.cmake \
    -DCMAKE_AR:FILEPATH=${CCTOOLS}/bin/x86_64-apple-darwin-ar \
    -DCMAKE_RANLIB:FILEPATH=${CCTOOLS}/bin/x86_64-apple-darwin-ranlib \
    -DLINKER_NAME=${CCTOOLS}/bin/x86_64-apple-darwin-ld
ninja -C build-osx

Le binaire résultant aura un format exécutable Mach-O et ne pourra pas être exécuté sous Linux.

Évaluation: 4 - 1 vote

Ce contenu a été utile?
★★★★☆