EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
开发板是一个实验室网关(HBE-UBI-box2),用来收集传感器传来的信息的。将写好的C文件通过ARM-linux-gcc编译器编译成cgi文件(编译命令:arm-linux-gcc -o info.cgi info.c)info.c是我写的文件。编译好了之后传到网关里面,然后访问网关就可以看到编程实现的结果了。/ b' \, M$ y9 W3 ?$ y# }# O1 l- g
可是,前几天导师说网关不能同时支持大量的访问,要我把网关收集的传感器数据传到实验室的服务器上,然后写个网站来访问服务器上的数据。。。好吧,我也不敢反抗,默默的在服务器上建好了MySQL数据库,写了几个jsp来访问数据库,都弄好了。! L& f1 t- m7 [: I1 d" }
可是把数据从网关传到服务器时确碰到难题了。我刚开始以为很简单,直接把之前+ w" ^- L( I6 y" O9 E0 h$ f# G
没有连接mysql数据库的代码加了这段代码:
. H8 u3 z$ d" c+ j$ kint connmysql(){ MYSQL mysql, *sock; mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql, "XXX", "XXX", "XXX", "XXX", 0, NULL, 0))) { printf("Cannot connect to database:%s\n",mysql_error(sock)); return 0; } char sqlbuf[200] = "INSERT INTO sensordata VALUES('0','sstatus.id','sstatus.illumi','sstatus.temp','sstatus.humid','sstatus.battery');"; if (mysql_query(sock, sqlbuf)) { printf("Query Failed:%s", mysql_error(sock)); return 0; } mysql_close(sock);return 0;} 其中那个连接数据库语句中的IP地址和用户名密码数据库名都是正确的,我用XXX代替了~。。。 代码也写好了,可是我在用arm-linux-gcc -o 编译的时候却报错了,百度了下,发现自己想的太简单了。按照别人的指导,在虚拟机Ubuntu上又装了mysql的客户机和服务器。
7 _. ?* b1 _: t) e* i1. sudo apt-get install mysql-server0 M, p! b8 z) d* _
2. apt-get install mysql-client2 V; y c# ]* U! C" c E9 ~6 Z
3. sudo apt-get install libmysqlclient-dev# G, @- ? x( C. L0 y
编译的命令也找了许多,大致就是要加上编译时用到的库的路径,最后采用的命令如下:arm-linux-gcc -I'/usr/include/mysql' -L'/usr/lib/i386-linux-gnu' -lmysqlclient -lpthread -lz -lm -lrt -ldl -o info.cgi mysql-info.c
4 T$ r7 ~+ @* Q# I0 Q% s: X这个时候噩梦开始了,一开始报了好多错,我只好一个个排查解决,其中辛酸暂且不表,但是最后还是有一个无法解决:
) Q# z M* c |7 X
$ c v2 b( Q& x! y8 I
报的错说是:libc.so 的文件格式不被认可和解析错误。找了好久没找到适合arm编程的libc.so文件,只能上这求救了,各位大神如有解决办法,或者对于这个项目的思路有什么新的思路(即不用通过arm连接mysql也可以实现相同功能)烦请指点一二。
, @ n! S0 ~% e( x# |+ ?
1 h7 S8 q8 @: F
$ D( w& ]- }( l8 ` F+ }) ?
0 L$ h6 p( L4 l: E. e5 V9 G) ] . a6 c* J0 C" f# e- X, }2 Q( ^
|