日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

编译ARM平台的QtEmbedded 的MySQL插件和移植MySQL到ARM开发板

發(fā)布時間:2024/9/5 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译ARM平台的QtEmbedded 的MySQL插件和移植MySQL到ARM开发板 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

經(jīng)過幾天的努力,終于交叉編譯出了arm平臺所需Qt/EMySQL插件(驅動),其中順便把MySQL也移植到了mini2410的開發(fā)板上。

編譯器:arm-linux-gcc(4.3.2)

Pc平臺:redhat


由于mysql本身并不支持交叉編譯,所以編譯過程相對復雜,且各版本有所

不同,本文針對mysql-5.1.32


1、準備工作

首先在/home/bjwlxy目錄下解壓mysql-5.1.32.tar.gz,得到mysql-5.1.32,進

入目錄運行如下命令:

#./configure --prefix=/usr/local/mysql

# make

然后將其改名為mysql-pc備用。(注意不要# make install)


2Configure

再次解壓mysql-5.1.32.tar.gz,得到mysql-5.1.32,進入目錄,修改configure

文件

#vi configure

注釋以下代碼:

21948#if test "$cross_compiling" = yes; then

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

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

21951#{ { $as_echo "$as_me:$LINENO: error: cannot run test programwhile

crosscompiling

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

21953#$as_echo "$as_me: error: cannot run test program while crosscompiling

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

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

21956#else

22025#fi

30317# if test "$cross_compiling" = yes; then

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

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

30320#{ { $as_echo "$as_me:$LINENO: error: cannot run test programwhile

crosscompiling

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

30322#$as_echo "$as_me: error: cannot run test program while crosscompiling

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

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

30325#else

30408#fi

保存退出。


#./configure --host=arm-linux --prefix=/usr/local/mysql


如果出現(xiàn)錯誤

error:No curses/termcap library found


再次配置

#./configure--host=arm-linux-with-named-curses-libs=/usr/lib/libncurses.so.5--prefix=/usr/local/mysql


3Make

#make

出現(xiàn)錯誤1

/usr/lib/libncurses.so.5:could not read symbols: Invalid operationead symbols: Invalidoperation

這個是因為libncurses.so.5運行平臺不是arm所致,這時,需要我們手動交叉編譯libncurses.so.5文件,方法和下面的類似:


1、下載ncurses-5.6.tar.gz安裝包,

#cdhome

解壓包

#tarzxvf ncurses-5.6.tar.gz

#cdncurses-5.6

配置

#./configure--host=arm-linux -prefix=/usr -with-shared -without-debug

#make


2、備份/usr/lib/里面的libncurses.so.5libncurses.so.5.6

cp/usr/lib/libncurses.so.5 /usr/lib/libncurses.so.5.bak

cp/usr/lib/libncurses.so.5.6 /usr/lib/libncurses.so.5.6.bak

復制ncurses-5.6/lib目錄下交叉編譯過的libncurses.so.5libncurses.so.5.6/usr/lib/

#cplib/libncurses.so.5 /usr/lib/

#cplib/libncurses.so.5.6 /usr/lib/

接著

#cd/home/bjwlxy/mysql-5.1.32

繼續(xù)

#make

}

出現(xiàn)錯誤2

make[2]:Leaving directory `/home/zhaowg/mysql-pc/sql'

./gen_lex_hash> lex_hash.h-t

/bin/sh:./gen_lex_hash: cannot execute binary file

make[1]:*** [lex_hash.h] 錯誤 126

這是由于編譯的arm類型的程序不能在PC上運行造成的,于是前面做的

準備工作派上用場了:

#cp ../mysql-pc/sql/gen_lex_hash sql/

#make

錯誤3

sql_parse.cc:5432:21:operator '<' has no left operand

make[3]:*** [sql_parse.o] 錯誤 1

檢查 sql_parse.cc5432行,發(fā)現(xiàn)宏變量STACK_DIRECTION沒有定義初

值,網(wǎng)上查找資料發(fā)現(xiàn)arm中定義STACK_DIRECTION1,于是在文件開5432的上一行

加上

#visql/sql_parse.cc

#define STACK_DIRECTION 1

保存退出。

#make

完成

4makeinstall

#make install

會停在

makeINSTALL_TO_DIR="/usr/local/mysql/mysql-test"install_test_files

make[4]:Entering directory `/home/zhaowg/mysql-pc/mysql-test'

一段時間,不要以為出錯了,耐心等一會!

到此,編譯arm平臺的mysql基本完成。


編譯arm平臺的QtEmbeddedmysql插件

進入Qt/E目錄

#cd $QTDIR/src/plugins/sqldrivers/mysql

#qmake "INCLUDEPATH+=/usr/local/mysql/include/mysql""LIBS+=-L/usr/local/mysql/lib/mysql -lmysqlclient_r"mysql.pro

#make

#makeinstall

#cd$QTDIR/plugins/sqldrivers/

#ls

如果出現(xiàn)libqsqlite.so,說明編譯成功。

移植MySQL到開發(fā)板

/usr/local目錄下的mysql文件夾拷貝到開發(fā)板的/usr/local目錄下,并在環(huán)

境變量里面聲明。

#export PATH=”$PATH:/usr/local/mysql/bin”

6、開啟mysqld服務

首先將以下內容保存為/etc/my.conf

[mysqld]

datadir=/var/lib/mysql

socket=/tmp/mysql.sock

user=root

#Default to using old password format for compatibility with mysql 3.x

#clients (those using the mysqlclient10 compatibility package).

old_passwords=1

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

因為在/var/run目錄下沒有mysqld/mysqld.pid,手工建立:

#mkdir /var/run/mysqld

#touch /var/run/mysqld/mysqld.pid

開啟服務:

#mysql_install_db –u root

#mysqld_safe –socket=/tmp/mysql.sock &

至此,mysql運行在arm 開發(fā)板上了

以下是我做的在arm上的移植:

因為登陸不上!

?mysqld_safe --user=root --skip-grant-tables --skip-networking &

總結

以上是生活随笔為你收集整理的编译ARM平台的QtEmbedded 的MySQL插件和移植MySQL到ARM开发板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。