am335x mysql_移植mysql到ARM(AM335x)

本文介绍了如何在ARM AM335x平台上移植MySQL数据库。首先,详细讲述了编译ncurses的过程,包括下载、解压、配置、编译和安装。然后,介绍了编译MySQL的步骤,包括下载、解压、配置和解决编译过程中遇到的ncurses库缺失、libtool、autoconf、automake问题,以及对configure文件的修改。虽然在配置过程中遇到了错误,但文章提供了部分解决方案。
摘要由CSDN通过智能技术生成

一,编译ncurses

编译mysql需要依赖ncurses,先编译ncurses

1.下载ncurses

下载路径是ftp://ftp.gnu.org/gnu/ncurses,选择下载的是ncurses-5.9.tar.gz。

2.解压,配置,编译,安装

配置参数如下:

./configure --prefix=/home/shawn/AM335x/ncurses \

CC=arm-arago-linux-gnueabi-gcc \

--host=arm-arago-linux-gnueabi \

--enable-static \

--enable-shared

编译安装,编译完成后,供编译mysql使用。

make

make install

二,编译Mysql

1.下载路径 http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/

2.选择下载 mysql-5.1.72.tar.gz

3.解压,复制一个mysql-5.1.72-PC,编译一个pc版本的以备后用

4.configure and make

./configure --prefix=/home/shawn/PC/mysql

执行configure会报错

checking for wctype_t in wctype.h... yes

checking for wint_t in wctype.h... yes

checking for tgetent in -lncursesw... no

checking for tgetent in -lncurses... no

checking for tgetent in -lcurses... no

checking for tgetent in -ltermcap... no

checking for tgetent in -ltinfo... no

checking for termcap functions library... configure: error: No curses/termcap library found

shawn@ubuntu:~/work/mysql-5.1.72-PC$

原因是缺少ncurses库,安装一下,再次configure

sudo apt-get install libncurses5-dev

继续报错

config.status: executing libtool commands

/bin/rm: cannot remove 'libtoolT': No such file or directory

config.status: executing default commands

Thank you for choosing MySQL!

Remember to check the platform specific part of the reference manual

for hints about installing MySQL on your platform.

Also have a look at the files in the Docs directory.

shawn@ubuntu:~/work/mysql-5.1.72-PC$

安装libtool autoconf automake

sudo apt-get install libtool autoconf automake

执行如下三条命令

autoreconf --force --install

libtoolize --automake --force

automake --force --add-missing

好吧,我承认,还是没有解决这个问题。。。。。。。先忽略掉。。。。。make,报错

mysql.cc:2687:37: error: invalid conversion from ‘char’ to ‘char*’ [-fpermissive]

打开client/mysql.cc,2687行 修改代码

field_names[i][num_fields*2]= '\0';

改成

field_names[i][num_fields*2]= "";

4.修改congifure,共有四处要修改,使用notepad++修改,在notepad++中,使用Ctrl+G跳到指定行数

//26302行开始的地方

if test "$cross_compiling" = yes; then

echo "skip......"

# { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5

#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}

#{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&5

#$as_echo "$as_me: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&2;}

# { (exit 1); exit 1; }; }; }

else

cat >conftest.$ac_ext <<_aceof>

//48121开始的地方

if test "$cross_compiling" = yes; then

echo "skip......"

# { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5

#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}

#{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&5

#$as_echo "$as_me: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&2;}

# { (exit 1); exit 1; }; }; }

else

cat >conftest.$ac_ext <<_aceof>

//48228开始的地方

if test "$cross_compiling" = yes; then

echo "skip......"

# { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5

#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}

#{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&5

#$as_echo "$as_me: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&2;}

# { (exit 1); exit 1; }; }; }

else

cat >conftest.$ac_ext <<_aceof>

//48442开始的地方

if test "$cross_compiling" = yes; then

echo "skip......"

# { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5

#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}

#{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&5

#$as_echo "$as_me: error: cannot run test program while cross compiling

#See \`config.log' for more details." >&2;}

# { (exit 1); exit 1; }; }; }

else

cat >conftest.$ac_ext <<_aceof>

5.配置configure,with-named-curses-libs就是上面ncurses编译出来的路径

./configure --host=arm-arago-linux-gnueabi \

--prefix=/home/shawn/AM335x/mysql \

CC=arm-arago-linux-gnueabi-gcc \

--enable-static \

--with-named-curses-libs=/home/shawn/AM335x/ncurses/lib \

--prefix=/usr/local/mysql \

--without-debug \

--without-docs \

--without-man \

--without-bench \

--with-charset=gb2312 \

--with-extra-charsets=ascii,latin1,utf8

执行configure的时候,报了如下错误

checking for atomic_cas_32... no

checking for atomic_cas_64... no

checking for atomic_cas_ulong... no

checking for atomic_swap_uchar... no

checking whether pthread_t can be used by Solaris libc atomic functions... configure: error: in `/home/shawn/work/mysql-5.1.72':

configure: error: cannot run test program while cross compiling

See `config.log' for more details.

shawn@ubuntu:~/work/mysql-5.1.72$

打开同路径下的config.log查看错误,直接搜索error,第一个错误是,a.out不能运行的,忽略掉。

conftest.c:10:28: fatal error: ac_nonexistent.h: No such file or directory

移植mysql到嵌入式ARM平台

移植MySQL到嵌入式ARM平台  MySQL没有专门针对ARM的版本,移植到ARM没有官方文档可参考,因此,暂时参考这样一篇文档: http://blog.chinaunix.net/space.p ...

成功移植SQLite3到ARM Linux开发板

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

移植madplay到ARM板

一.环境和软件介绍 1.主机环境:Ubuntu16.04 2.交叉编译器: gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 3.ARM板:kernel: ...

移植vsftpd到arm linux

vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux.BSD. ...

如何让移植的嵌入式ARM显示中文汉字

如果你急于在ARM开发板上看到Qt显示中文,而不介意稍次的效果,可以在运行Qt程序时,增加设置字体的参数,比如运行名为hello的Qt程序:./hello -fn unifont 1.首先,需要文泉驿 ...

移植openssh到arm linux

一.在移植之前需要准备做一些前期准备: 1.移植zlib库 1.1获取zlib源码 1.2解压 tar xvf zlib-1.2.11.tar.xz 1.3交叉编译 1.3.1 指定交叉编译器 exp ...

【转】移植vsftpd到arm linux

vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux.BSD. ...

嵌入式linux------ffmpeg移植 编码H264(am335x编码H264)

[cpp] view plaincopy

 
 
 
 

嵌入式linux------ffmpeg移植 解码H264(am335x解码H264到yuv420并通过SDL显示)

/* 编译命令:arm-linux-gcc -o show2642 264showyuv2.c -I/usr/local/ffmpeg_arm/include/ -L/usr/local/ffmpeg ...

随机推荐

Knockout&period;js随手记&lpar;5&rpar;

以列表方式呈现数据  处理以数组形式储存的多条数据,要先认识foreach.在ViewModel定义一个JavaScript Array或是ko.observableArray() (observab ...

在Myeclipse中移除项目对Hibernate的支持

在Myeclipse中移除项目对Hibernate的支持 在使用Hibernate框架进行开发时可能会遇到配置错误或者需要删除Hibernate支持的情况.下面就说一下如何彻底移除项目的Hiberna ...

c&plus;&plus;中类长度解析

通常我们定义一个类,它所占的空间有多大呢? 首先我们看一下下面的这个类 class A{ public: void func1(void){ printf("11111heihei\n&qu ...

LBS配置

js:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值