EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
开发板是一个实验室网关(HBE-UBI-box2),用来收集传感器传来的信息的。将写好的C文件通过ARM-linux-gcc编译器编译成cgi文件(编译命令:arm-linux-gcc -o info.cgi info.c)info.c是我写的文件。编译好了之后传到网关里面,然后访问网关就可以看到编程实现的结果了。
% y0 d# F$ w3 R( b9 Q& \2 d可是,前几天导师说网关不能同时支持大量的访问,要我把网关收集的传感器数据传到实验室的服务器上,然后写个网站来访问服务器上的数据。。。好吧,我也不敢反抗,默默的在服务器上建好了MySQL数据库,写了几个jsp来访问数据库,都弄好了。
) n2 i2 S) |: }! |, `可是把数据从网关传到服务器时确碰到难题了。我刚开始以为很简单,直接把之前, t# W! y0 M3 I4 F% C0 x L
没有连接mysql数据库的代码加了这段代码:
* T: W5 y- |: l+ e+ g% o! N/ xint 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的客户机和服务器。! W% u: j0 {+ z) @- ^" c0 F. v; Z
1. sudo apt-get install mysql-server$ J( _5 T0 G/ e7 ?1 P" N
2. apt-get install mysql-client- e7 c4 D, u5 t2 \& C
3. sudo apt-get install libmysqlclient-dev. ]1 n8 ?" w5 u7 m
编译的命令也找了许多,大致就是要加上编译时用到的库的路径,最后采用的命令如下: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
6 s' @* n2 b/ H( t! E7 T这个时候噩梦开始了,一开始报了好多错,我只好一个个排查解决,其中辛酸暂且不表,但是最后还是有一个无法解决:6 V- F% O u" d2 O' o
" Q8 o2 K( r- b& L; M
报的错说是:libc.so 的文件格式不被认可和解析错误。找了好久没找到适合arm编程的libc.so文件,只能上这求救了,各位大神如有解决办法,或者对于这个项目的思路有什么新的思路(即不用通过arm连接mysql也可以实现相同功能)烦请指点一二。 ; n3 n- \& K% s3 `! U0 E
% Y# c* y1 o3 e+ y9 Z
" G. x+ w* ]( Q3 c/ B9 G
9 p6 q5 g) z( W. u% @3 f' S
% ^8 l0 ~; `, b! `; O/ U9 y |