欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql-arm-linux-gcc编译报错:libc.so format not recognized.

程序员文章站 2022-06-04 18:09:00
...
mysqlarmarm开发板

小弟新手,之前没接触过arm开发,这两天做毕设碰到了难题,请大家帮忙看下,
先行谢过!
我的开发板是一个实验室网关(HBE-UBI-box2),用来收集传感器传来的信息的。将写好的C文件通过arm-linux-gcc编译器编译成cgi文件(编译命令:arm-linux-gcc -o info.cgi info.c)info.c是我写的文件。编译好了之后传到网关里面,然后访问网关就可以看到编程实现的结果了。
可是,前几天导师说网关不能同时支持大量的访问,要我把网关收集的传感器数据传到实验室的服务器上,然后写个网站来访问服务器上的数据。。。好吧,我也不敢反抗,默默的在服务器上建好了MySQL数据库,写了几个jsp来访问数据库,都弄好了。
可是把数据从网关传到服务器时确碰到难题了。我刚开始以为很简单,直接把之前
没有连接mysql数据库的代码加了这段代码:
int 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的客户机和服务器。
1. sudo apt-get install mysql-server
2. apt-get install mysql-client
3. sudo apt-get install libmysqlclient-dev
编译的命令也找了许多,大致就是要加上编译时用到的库的路径,最后采用的命令如下: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
这个时候噩梦开始了,一开始报了好多错,我只好一个个排查解决,其中辛酸暂且不表,但是最后还是有一个无法解决:
mysql-arm-linux-gcc编译报错:libc.so format not recognized.
报的错说是:libc.so 的文件格式不被认可和解析错误。找了好久没找到适合arm编程的libc.so文件,只能上这求救了,各位大神如有解决办法,或者对于这个项目的思路有什么新的思路(即不用通过arm连接mysql也可以实现相同功能)烦请指点一二,感激不尽~