折騰了數天,終於將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 嵌入式開發與微控制器開發的區別?答 區別 是否有作業系統。拓展 答 優點 解決了軟體的移植性 解決了開發人員的能力的劃分問題。提供了豐富的網路協議 ...