mysql-connector移植到mini2440

由于最近开发版上的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上去编译了,果然一路顺风,一个多小时后就编译好了(虚拟机上可能比较慢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: mysql-connector-java和mysql-connector-j是同一个MySQL官方提供的JDBC驱动程序,它用于连接MySQL数据库和Java应用程序。mysql-connector-java是MySQL Connector/J的完整名称,其中“J”表示Java,是指这是一个Java驱动程序。而mysql-connector-j则是mysql-connector-java的简写,两者是同一个东西,只是名称不同。 ### 回答2: mysql-connector-java和mysql-connector-j都是用于连接Java应用程序和MySQL数据库的驱动程序。它们之间的主要区别可以从以下几个方面来看。 1. 命名方式:mysql-connector-java是根据JDBC(Java数据库连接)的命名方式来命名的,而mysql-connector-j是MySQL Connector/J的缩写命名方式。 2. 版本历史:mysql-connector-java是MySQL官方发布的Java驱动程序,它的版本号与MySQL数据库的版本号是对应的。而mysql-connector-j是在mysql-connector-java的基础上进行二次开发和维护的版本。 3. 社区贡献:mysql-connector-java由MySQL官方维护,更新频率较稳定,并提供了常见的功能和支持。而mysql-connector-j则是由独立的开发者或第三方贡献者维护,更新可能相对较少。 4. 功能支持:由于mysql-connector-java是MySQL官方的驱动程序,它相对完整地支持了MySQL数据库的各种功能,如事务处理、存储过程等。而mysql-connector-j则可能只支持部分数据库功能,具体取决于开发者对其进行的二次开发。 总体来说,mysql-connector-java是更常用和可靠的MySQL数据库驱动程序,由MySQL官方提供支持和维护。而mysql-connector-j则可能是由第三方进行了一些个性化的开发和定制,可能用于特定的应用场景。选择使用哪个驱动程序取决于具体的需求和项目要求。 ### 回答3: mysql-connector-java和mysql-connector-j其实是指的同一个东西,都是用于Java程序连接MySQL数据库的驱动程序。mysql-connector-java是该驱动程序的官方名称,而mysql-connector-j则是该驱动程序的简称。 mysql-connector-java是Java语言开发的,它提供了一个API,使得Java程序可以直接连接和操作MySQL数据库。通过mysql-connector-java,Java程序可以执行数据的增删改查操作,执行SQL语句,以及连接和断开数据库等。 mysql-connector-j是mysql-connector-java的缩写形式,常用于命令行或脚本的写作。在一些场景中,为了方便输入或提高效率,人们更倾向于使用mysql-connector-j这个简称。 总结来说,mysql-connector-java和mysql-connector-j在功能和使用上并没有实质的差别,只是一个是官方名称,一个是简称。无论是使用mysql-connector-java还是mysql-connector-j,都是为了实现Java程序与MySQL数据库的连接和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值