mysql-connector移植到mini2440

來源:互聯網
上載者:User

由於最近開發版上的sqlite需要訪問伺服器上的mysql,就移植了下mysql-connector-c來訪問伺服器,也可以通過交叉編譯mysql的原始碼,不過貌似mysql不支援交叉編譯,查了下網上步驟比較繁雜

1,下載mysql-connector-c-6.0.2.tar.gz

http://dev.mysql.com/downloads/connector/c/

2,解壓進入目錄

3.ubuntu下安裝cmake: sudo apt-get install cmake

4.安裝交叉編譯器就不詳細說了(arm-linux-gcc -v 察看下)

5.設定編譯器 

export CC=arm-linux-gcc CXX=arm-linux-g++

或者在CMakeLists.txt修改添加

SET(CMAKE_CXX_COMPILER "arm-linux-g++")
SET(CMAKE_C_COMPILER "arm-linux-gcc")

6.用cmke產生makefile

mkdir mypath

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=mypath  (mypath為交叉編譯之後的安裝路徑)

7.開始編譯

make

可能在make過程中在編譯到95%的時候會報未定義到floor(),log(),pow()等數學函數,因為gcc編譯時間候要加-lm參數串連《math.h》

解決方案:

vim CMakeLists.txt ////在如下兩處添加-lm參數

 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall
-lm")
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -lm -fno-rtti -fno-exceptions")

如果在開始編譯時間include/my_global.h 中的rint()這個函數報錯可以將其函數體全部注釋也能編譯通過

make install

8.通過編譯好的庫為qt編譯驅動,由於通過驅動訪問資料庫效率比較低我們採用靜態編譯的方式將驅動編譯到Qt的庫中

./configure-prefix /usr/local/Trolltech/QtEmbedded-arm -opensource-confirm-license -release -shared -embedded arm -xplatformqws/linux-arm-g++
-depths 16,18,24 -fast -optimized-qmake -pch-qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype-little-endian -host-little-endian -no-qt3support -no-libtiff-no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-webkit-no-qvfb -no-phonon -no-nis
-no-opengl -no-cups -no-glib -no-xcursor-no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomakeexamples -nomake tools -nomake docs -qt-mouse-tslib
-qt-sql-mysql -I/usr/local/tslib/include -L/usr/local/tslib/lib
-I/usr/local/arm_mysql/include -L/usr/local/arm_mysql/lib

紅色部分為我為編譯mysql驅動到Qt庫中添加的編譯條件和依賴mysql標頭檔和庫(前面編譯安裝好mysql的目錄)

由於mysql驅動都編譯到Qt庫中了,移植到開發板上的過程和移植Qt一樣,最後還得將前面交叉編譯好了的mysql lib目錄中的libmysql.so.16拷貝到開飯版/lib中否則會提示找不到共用庫

註:開始我實在ubuntu12.04上編譯的總是報錯改了好久都沒改好改裝的庫都裝了,想到前面在fedora14上編譯QT沒啥出錯就又跑到fedora上去編譯了,果然一路順風,一個多小時後就編譯好了(虛擬機器上可能比較慢)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.