MYSQL_5.7.20移植ti-am335x

本文介绍如何在嵌入式环境下从源码编译安装MySQL 5.7.20,包括准备ncurses和Boost依赖库,配置跨平台编译环境及详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

需要软件:

mysql-boost-5.7.20.tar.gz

ncurses-5.9.tar.gz

boost_1_59_0.tar.gz(只需源码,不需编译,不需安装到板子)

步骤:

  1. 下载ncurses-5.9.tar.gz/opt/ncurses/

  2. $cd /opt/ncurses

  3. $tar xvf ncurses-5.9.tar.gz

  4. $cd ncurses-5.9

  5. $vi build.sh

输入以下内容(黄色高亮内容视情况而定):

#!/bin/sh

./configure--host=arm-linux-gnu--prefix=/opt/ti-am335x-sysroot/usr/local/lib/libncurses/\

CC=/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc\

CXX=/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

make

make installDESTDIR=/opt/ti-am335x-sysroot/usr/local/lib/libncurses

  1. $ch mod+x build.sh

  2. $./build.sh

  3. $下载boost_1_59_0.tar.gz/opt/boost/

  4. $cd boost

  5. $tar xvf boost_1_59_0.tar.gz

  6. $cd boost_1_59_0 #只解压即可 不需安装

  7. 下载mysql-boost-5.7.20.tar.gz/opt/mysql目录

  8. $tar xvf mysql-boost-5.7.20.tar.gz

  9. $cd mysql-5.7.20/BUILD/

  10. $cmake ../ -DCMAKE_CXX_FLAGS=-m64 -DCMAKE_C_FLAGS=-m64

  11. $make comp_err comp_sql gen_lex_hash gen_lex_token

  12. $sudo cp extra/comp_err scripts/comp_sql sql/gen_lex_hash sql/gen_lex_token

  13. $cd /opt/mysql/

  14. $mkdir build-arm

  15. $cd build-arm/

  16. $vi build.sh

(输入以下内容)

#!/bin/bash

rm ../mysql-5.7.20/CMakeCache.txt CMakeCache.txt

cmake ../mysql-5.7.20/ \

-DCMAKE_TOOLCHAIN_FILE=../build-arm/toolchain_file\

-DWITH_BOOST=/opt/boost/\

-DDEFAULT_CHARSET=utf8\

-DDEFAULT_COLLATION=utf8_general_ci\

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1\

-DWITH_READLINE=1 \

-DCMAKE_INSTALL_PREFIX=/opt/ti-am335x-sysroot/usr/local/mysql5.7.20\

-DMYSQL_DATADIR=/opt/ti-am335x-sysroot/data/mysql/data\

-DSTACK_DIRECTION=1 \

-DCURSES_LIBRARY=/opt/ti-am335x-sysroot/usr/local/lib/libncurses/lib/libncurses.a\

-DCURSES_INCLUDE_PATH=/opt/ti-am335x-sysroot/usr/local/lib/libncurses/include\

-DHAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE=1\

-DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1\

-DWITHOUT_INNOBASE_STORAGE_ENGINE=1\

-DDISABLE_PSI_COND=1 \

-DDISABLE_PSI_FILE=1 \

-DDISABLE_PSI_IDLE=1 \

-DDISABLE_PSI_MEMORY=1\

-DDISABLE_PSI_METADATA=1\

-DDISABLE_PSI_MUTEX=1 \

-DDISABLE_PSI_RWLOCK=1\

-DDISABLE_PSI_SOCKET=1\

-DDISABLE_PSI_SP=1 \

-DDISABLE_PSI_STAGE=1 \

-DDISABLE_PSI_STATEMENT=1\

-DDISABLE_PSI_DIAGEST=1\

-DDISABLE_PSI_TABLE=1 \

-DENABLED_PROFILING=0 \

-DENABLE_DEBUG_SYNC=0 \

-DENABLE_DTRACE=0 \

-DENABLE_GCOV=0 \

-DOPTIMIZER_TRACE=0 \

-DWITH_DEBUG=0 \

-DWITH_EMBEDDED_SERVER=1\

-DWITH_EMBEDDED_SHARED_LIBRARY=1\

-DWITH_RAPID=0 \

-DWITH_UNIT_TESTS=0 \

make

make install

16.$vi toolchain_file

输入以下内容

#this one is important

SET(CMAKE_SYSTEM_NAMELinux)

SET(CMAKE_SYSTEM_VERSION4.9.41)

SET(CMAKE_SYSTEM_PROCESSORarm)

#thisone not so much

#specify the cross compiler

set(tools/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf)

SET(CMAKE_C_COMPILER /opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc)

SET(CMAKE_CXX_COMPILER/opt/TI-AM335X/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++)

#where is the target environment

SET(CMAKE_SYSROOT/opt/ti-am335x-sysroot)

SET(CMAKE_FIND_ROOT_PATH /opt/ti-am335x-sysroot)

#search for programs in the build host directories

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAMNEVER)

#for libraries and headers in the target directories

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARYONLY)

SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDEBOTH)

SET(CMAKE_FIND_ROOT_PATH_MODE_PACHAGEONLY)

#for libraries and headers in the target directories

SET(HAVE_C_SHIFT_OR_OPTIMIZATION_BUG_EXITCODE 0)

SET(HAVE_CXX_SHIFT_OR_OPTIMIZATION_BUG_EXITCODE 0)

SET(HAVE_C_FLOATING_POINT_FUSED_MADD_EXITCODE 0)

SET(HAVE_CXX_FLOATING_POINT_FUSED_MADD_EXITCODE 0)

SET(HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE_EXITCODE 0)

SET(HAVE_LLVM_LIBCPP_EXITCODE 0)

#SET(HAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE 1)

17.$./build.sh

至此,mysql将被编译并安装到/opt/ti-am335x-sysroot/usr/local/mysql5.7.20目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值