linux mysql libc.so_mysql-arm-linux-gcc编译报错:libc.soformatnotrecognized.
小弟新手,之前沒接觸過arm開發(fā),這兩天做畢設(shè)碰到了難題,請大家?guī)兔聪?#xff0c;
先行謝過!
我的開發(fā)板是一個實驗室網(wǎng)關(guān)(HBE-UBI-box2),用來收集傳感器傳來的信息的。將寫好的C文件通過arm-linux-gcc編譯器編譯成cgi文件(編譯命令:arm-linux-gcc -o info.cgi info.c)info.c是我寫的文件。編譯好了之后傳到網(wǎng)關(guān)里面,然后訪問網(wǎng)關(guān)就可以看到編程實現(xiàn)的結(jié)果了。
可是,前幾天導(dǎo)師說網(wǎng)關(guān)不能同時支持大量的訪問,要我把網(wǎng)關(guān)收集的傳感器數(shù)據(jù)傳到實驗室的服務(wù)器上,然后寫個網(wǎng)站來訪問服務(wù)器上的數(shù)據(jù)。。。好吧,我也不敢反抗,默默的在服務(wù)器上建好了MySQL數(shù)據(jù)庫,寫了幾個jsp來訪問數(shù)據(jù)庫,都弄好了。
可是把數(shù)據(jù)從網(wǎng)關(guān)傳到服務(wù)器時確碰到難題了。我剛開始以為很簡單,直接把之前
沒有連接mysql數(shù)據(jù)庫的代碼加了這段代碼:
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;
}
其中那個連接數(shù)據(jù)庫語句中的IP地址和用戶名密碼數(shù)據(jù)庫名都是正確的,我用XXX代替了~。。。
代碼也寫好了,可是我在用arm-linux-gcc -o 編譯的時候卻報錯了,百度了下,發(fā)現(xiàn)自己想的太簡單了。按照別人的指導(dǎo),在虛擬機(jī)Ubuntu上又裝了mysql的客戶機(jī)和服務(wù)器。
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
這個時候噩夢開始了,一開始報了好多錯,我只好一個個排查解決,其中辛酸暫且不表,但是最后還是有一個無法解決:
報的錯說是:libc.so 的文件格式不被認(rèn)可和解析錯誤。找了好久沒找到適合arm編程的libc.so文件,只能上這求救了,各位大神如有解決辦法,或者對于這個項目的思路有什么新的思路(即不用通過arm連接mysql也可以實現(xiàn)相同功能)煩請指點一二,感激不盡~
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的linux mysql libc.so_mysql-arm-linux-gcc编译报错:libc.soformatnotrecognized.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2%电量手机还能玩多久?vivoY300
- 下一篇: java wav 波形_java读取wa