libiotsdk.a是我在別的地方編譯生成的庫檔案,在當前工程引用並編譯,報錯如下:
gcc -o /mnt/web/main .
/obj/db_ble.o .
/obj/acmsg.o .
/obj/main.o -l../
../.
./lib -lcurl -lid2client -litls -lpthread -lrt -lsqlite3 -lssl -lcrypto -liotsdk..
/../
../lib/libiotsdk.
a(database.o)
: in function `db_open':
/mnt/hgfs/gateway/src/sdk/
./db/database.c:
33: undefined reference to `sqlite3_open'..
/../
../lib/libiotsdk.
a(database.o)
: in function `db_close':
/mnt/hgfs/gateway/src/sdk/
./db/database.c:
51: undefined reference to `sqlite3_close'..
/../
../lib/libiotsdk.
a(database.o)
: in function `db_update':
/mnt/hgfs/gateway/src/sdk/
./db/database.c:
92: undefined reference to `sqlite3_exec'..
/../
../lib/libiotsdk.
a(database.o)
: in function `db_record_count':
/mnt/hgfs/gateway/src/sdk/
./db/database.c:
122: undefined reference to `sqlite3_get_table'..
/../
../lib/libiotsdk.
a(database.o)
: in function `db_record_unique':
/mnt/hgfs/gateway/src/sdk/
./db/database.c:
152: undefined reference to `sqlite3_get_table'..
/../
../lib/libiotsdk.
a(database.o)
: in function `db_query':
/mnt/hgfs/gateway/src/sdk/
./db/database.c:
246: undefined reference to `sqlite3_get_table'
提示意思是缺少sqlite的庫,但是編譯libiotsdk.a的時候沒報錯,而且在當前工程中也引用了sqlite的庫。
搞了半天都不行,偶然之中調整了libiotsdk.a到最前面消除了這個錯誤:
root@ubuntu:
/mnt/hgfs/gateway/src/prj/bleac# make
gcc -o /mnt/web/main .
/obj/db_ble.o .
/obj/acmsg.o .
/obj/main.o -l../
../.
./lib -liotsdk -lcurl -lid2client -litls -lpthread -lrt -lsqlite3 -lssl -lcrypto
root@ubuntu:
/mnt/hgfs/gateway/src/prj/bleac# make
make:
'/mnt/web/main' is up to date.
因此,在鏈結命令中需要注意庫之間的依賴順序,依賴其他庫的庫一定要放到被依賴庫的前面,這樣才能避免undefined reference的錯誤。 iis和 安裝順序引起的問題
裝了vs2005再裝iis,結果出了些小問題 訪問iis元資料庫失敗 思考可能是次序出了問題,解決 1 開啟cmd,進入 c windows microsoft.net framework v2.0.50727 2 輸入 aspnet regiis.exe i 稍等片刻,註冊成功就解決問題了。接著還...
null 與 equals判斷順序引起的頭疼事
寫了乙個方法,擷取字串的長度 public static string parseimagepath string path else return imagepath 標紅色 有問題。如果path null,那麼這個判斷就不起作用了,會報錯 剛開始,怎麼也想不通,已經在控制台上輸出了path nu...
Makefile 中 的區別
在makefile中我們經常看到 這幾個賦值運算子,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建乙個makefile,內容為 ifdef define vre vre hello world else endif ifeq opt define vre hello world first end...