移植mysql到ARM(AM335x)
一,编译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(AM335x)的更多相关文章
- 移植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 <pre name="code" class="cpp"><pre name="code& ...
- 嵌入式linux------ffmpeg移植 解码H264(am335x解码H264到yuv420并通过SDL显示)
/* 编译命令:arm-linux-gcc -o show2642 264showyuv2.c -I/usr/local/ffmpeg_arm/include/ -L/usr/local/ffmpeg ...
随机推荐
- maven项目-修复Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin:1.8:add-resource (execution: add-resource, phase: generate-resources) pom.xml报错
1:pom.xml代码 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build- ...
- A The Empire Age
1月28日 Description 帝国时代3是一款十分刺激的RTS游戏.你需要控制自己的一块殖民地,发展殖民地的经济和军事,最终打败其他殖民地.小L是这个游戏的狂热爱好者.一次小L打算打AI试试身手 ...
- 简单学完HTML+CSS+JS,现在开始看算法(第四版)----欧几里得算法
欧几里得算法 package euclidean_algorithm; import java.util.Scanner; /** * @author ALazy_cat * 欧几里得算法的自然语言描 ...
- 我的学习目标(目前已初步学习完Java语言基础)
操作系统.尤其是内存/线程/进程方面 计算机网络协议,重点关注 TCP/UDP/HTTP. 数据结构与算法. 数据库 设计模式,熟练掌握常用的几种设计模式. Java语言基础.熟悉java语言基础,了 ...
- 微信小程序 image属性 mode
mode属性可以改变图片的填充容器方式
- QWaitConditioin的思考1
16:50:392017-03-31 本文章为原创,如若引用请指明出处,否则追责. 以 生产.消费者的例子说明 #include <QtCore/QCoreApplication>#inc ...
- js bind0
$(function(){ $("#ul").on('click','li',function(){ if(!$(this).a $(function(){ $("#ul ...
- element-ui隐藏组件scrollbar的使用
话不多说,直接上图 总结:el-scrollbar组件设置高度100%包裹住需要滚动的dom结构即可. 再例如: 至于配置props,参见源码https://github.com/ElemeFE/el ...
- UTC,BJT时间换算-java
题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千 ...
- CCF 消息传递接口 (队列) 201903-4 (100分)
[题目描述] 老师给了 T 份 MPI 的样例代码,每份代码都实现了 n 个进程通信.这些进程标号 从 0 到 n − 1,每个进程会顺序执行自己的收发指令,如:“S x”,“R x”.“S x”表示 ...