CrossCompilare tdlib (arm) su archlinux

CrossCompilare tdlib (arm) su archlinux

@windoz @davtur19


ATTENZIONE: NON E' DA COPIARE E INCOLLARE SENZA VEDERE COME FUNZIONA

ALCUNI COMANDI / CONFIGURAZIONI POTREBBERO CAMBIARE

preparazione del ambiente

sudo pacman -S gcc cmake make git gperf

sudo yaourt -S arm-linux-gnueabihf-gcc


preparazione delle dipendenze

sudo mkdir /library

sudo mkdir /library/zlib

sudo mkdir /library/openssl

git clone https://github.com/madler/zlib

git clone https://github.com/openssl/openssl

git clone https://github.com/tdlib/td


CrossCompiliamo zlib

cd zlib

export CC=arm-linux-gnueabihf-gcc

./configure --prefix=/library/zlib

make

sudo make install

unset CC

cd ..


CrossCompiliamo openssl

cd openssl

./Configure linux-generic32 shared --cross-compile-prefix=arm-linux-gnueabihf- --prefix=/library/openssl

sudo make install

cd ..


Preparazione di tdlib

cd td && mkdir build_native && cd build_native

cmake -DCMAKE_BUILD_TYPE=Release ..

cmake --build . --target prepare_cross_compiling

cd ..


Prepariamo cmake per CrossCompilare tdlib

apriamo con un editor CMakeLists.txt

aggiungiamo all'inizio le sequenti righe

set(ZLIB_ROOT /library/zlib)
set(OPENSSL_ROOT_DIR /library/openssl)
link_libraries(atomic)

ora creiamo la cartella build e ci entriamo

mkdir build && cd build

creiamo il cmake toolchain file

touch tc.txt

apriamo con un editor tc.txt e inseriamo le sequenti righe

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabihf-g++)


CrossCompiliamo tdlib

cmake -DCMAKE_TOOLCHAIN_FILE=tc.txt -DCMAKE_BUILD_TYPE=Release ..

cmake -DCMAKE_BUILD_TYPE=Release ..

cmake --build .

cmake --build . --target tdjson

cmake --build . --target tdclient

Report Page