編譯出現:【/usr/bin/ld: skipping incompatible * when searching for *】的解決方法


       最近在做嵌入式課程設計,用到了sqlite3,今天在linux下編譯在電腦裏運行的使用了sqlite3的C文件出現以下錯誤提示:
wzg@wzg-TP:~/6410/linuxcsqlite3$ make
gcc sqlite.o -o sqlite -L /home/wzg/6410/sqlite-3.5.9/_install/lib -I/home/wzg/6410/sqlite-3.5.9/_install/include  -l sqlite3   
/usr/bin/ld: skipping incompatible /home/wzg/6410/sqlite-3.5.9/_install/lib/libsqlite3.so when searching for -lsqlite3
/usr/bin/ld: skipping incompatible /home/wzg/6410/sqlite-3.5.9/_install/lib/libsqlite3.a when searching for -lsqlite3
/usr/bin/ld: cannot find -lsqlite3
collect2: error: ld returned 1 exit status
make: *** [sqlite] 錯誤 1


       搞了好久都沒搞出來,經過不停地問度娘,終於得到了以下解決方案:

       分析:編譯器給出的錯誤信息已經很清楚了:兼容性問題
       使用命令:file ***.o查看文件信息
       以我遇到的爲例:
wzg@wzg-TP:~/6410/linuxcsqlite3$ file /home/wzg/6410/sqlite-3.5.9/_install/lib/libsqlite3.so
/home/wzg/6410/sqlite-3.5.9/_install/lib/libsqlite3.so: symbolic link to `libsqlite3.so.0.8.6'

wzg@wzg-TP:~/6410/linuxcsqlite3$ file /home/wzg/6410/sqlite-3.5.9/_install/lib/libsqlite3.so.0.8.6
/home/wzg/6410/sqlite-3.5.9/_install/lib/libsqlite3.so.0.8.6: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped

       我想使用gcc編譯c文件,可是該sqlite3是給ARM的,不能兼容,所以編譯器不能通過,需要重新下載sqlite3進行編譯。
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章