mysql5 1 51在嵌入式開發板上的移植總結

2021-06-20 02:57:31 字數 1431 閱讀 9709

折騰了數天,終於將mysql移植到了開發板上了,其中多有曲折,也得到了很多網友的幫助,所幸最終是有所收穫的,遂記錄一下以備留用。

總結嵌入式移植的經驗:

1:首先應該思路清晰,檔案結構要清楚明了,由於嵌入式移植涉及到主機和目標板,存在兩套原始碼和目錄,檔案結構明確不容易搞錯

2:嵌入式移植通常需要在主機端進行兩次原始碼編譯,首先是在主機環境下的gcc ,g++ ,ar等進行一次編譯,生成或者得到一些可以在主機系統上執行的庫或者中間程式

然後在用 交叉編譯工具對原始碼進行編譯一次得到目標板環境下能夠執行的**,有的時候需要講主機環境下得到的一些執行檔案copy到交叉編譯物件的原始碼目錄下,這樣在

交叉編譯的時候就能夠跳過一些中間環節

3、在編譯ncurses過程中遇到了乙個問題,提示

-i../c++ 目錄不存在相關的錯誤,經過我檢查後發現c++目錄是存在的而且相對路徑也沒錯,折騰了蠻久沒找到問題

後面才發現原來是沒有安裝g++的緣故,導致對cc檔案的編譯無法進行,安裝g++後就沒問題了

4、ylwrap line 111:-d:command not found

發現一般情況下如果報 命令列 命令找不到什麼的 很有可能就是缺少了某個包或者某個依賴程式導致的

需要安裝 flex或者bison 庫 然後重新 ./configure 就解決了

5、按照手冊上的指引,mysql交叉編譯順利完成,但是發現編譯得到的結果太大了184m,開發板沒有這麼大的空間,於是對mysql-test移除,少了100m,將編譯結果複製到

開發板對應的目錄上

6、對資料庫進行初始化

./mysql_install_db -u root --force --basedir=/opt/mysql --datadir=/var/lib/mys 

這個時候報了很奇怪的錯誤:

/opt/mysql/bin/my_print_defaults: line 1: syntax error: unexpected word (expecting ")") 

my_print_defaults是編譯得到的可執行程式,怎麼可能會有語法錯誤,百思不得其解,經過檢索發現了一些線索

不同的shell指令碼對檔案的解析有語法上的不同,而這種不同正能引發類似的這種錯誤

於是檢查開發板和主機系統的shell

主機 :/bin/sh -> bash

開發板:/bin/sh -> busybox

於是對主機環境的sh更改連線,安裝busybox,使得主機的sh -> busybox

重新對ncurses和myql編譯,然後重新安裝,結果順利!!

7、其餘還遇到了一些使用者許可權相關的錯誤,還有pid檔案相關的錯誤等等,這些都可以再,移植手冊中找到

8、對資料庫進行測試,show databases 得到了想要的結果!!

9、在遇到問題的過程中,檢索和向大家求助是很重要的,在討論的過程中能夠得到很好的靈感!

MySQL5 1 51在Linux上的安裝和配置

linux下mysql安裝配置 mysql配置引數詳解,在linux下配置 mysql的朋友可以參考下。cd opt tar zxvf mysql 5.1.51.tar.gz configure prefix usr local mysql mysql安裝目錄 datadir mydata 資料庫存...

嵌入式開發

經常會有人說嵌入式開發,嵌入式開發千差萬別,我總體上分為4個等級 微電子開發 rtos開發 指令碼開發 富應用開發 這一類產品行為比較固定,比如說電視遙控器,遙控汽車,電飯煲,恆溫燒水壺,溫濕度感測器,智慧型門鎖等。這些裝置行為都比較簡單,通過按鈕可以設定系統功能和行為。量不大,經常會選用flash...

初識嵌入式 嵌入式開發概述

1 什麼是嵌入式技術 1 嵌入式軟體與非嵌入式軟體的區別?答 嵌入式軟體是結合作業系統之上做的開發 非嵌入式軟體是做的裸機開發。裸機 沒有作業系統 2 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...