SQLite編譯問題

2022-09-13 20:51:15 字數 613 閱讀 8044

從主頁上獲得了sqlite的原始檔,還沒有時間研究就在編譯上發生了不小的問題。

首先是碰到是,編譯之後,只產生了sqlite3.dll檔案,不產生對應的lib庫檔案。

檢視了下sqlite3.h**,發現了sqlite_api的巨集沒有定義匯出用的__declspec(dllexport),只是做了乙個空定義,就很自然的為在後面加上了。重新編譯了以後發現,還是沒有任何匯出函式,也沒有生成任何的lib庫檔案,這讓我一時間不知道如何是好。

發現可以匯出,但是遇到了第二個問題,sqlite3.def居然發現了一些無法一些無法識別的符號,就是所謂的link2001錯誤。

這著實讓我頭疼了很久。畢竟我不可能認為是源**寫的有問題吧。

查了很多文件和資料才知道,需要在預處理器當中該定義三個巨集:

sqlite_enable_column_metadata

sqlite_enable_rtree

threadsafe

還沒找到這三個用來定義的作用是什麼,但顯然是函式編譯的開關,可能還與sqlite3的版本管理有關係。這些複雜的問題只能暫且擱置了。

sqlite3 編譯問題

sqlite3用到libpthread和libdl因此要鏈結這兩個庫 假如先把sqlite3.c編譯成sqlite3.o或者libsqlite3.a g lm lpthread ldl o 目標 main.o sqlite3.o 或者 g lm lpthread ldl lsqlite3 o 目標 ...

sqlite庫學習 1 編譯sqlite

sqlite是一款輕型的資料庫,是遵守acid的關係型資料庫管理系統。它很小,只有sqlite3.h sqlite3ext.h sqlite3.c三個c語言檔案。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式裝置中,可能只需要幾百k的記憶體就夠了。它能夠...

如何交叉編譯sqlite

2 tar zxvf sqlite autoconf 3071600.tar.gz c 解壓到當前目錄下 3 cd sqlite autoconf 3071600 進入到原碼目錄下 4 configure host usr local hfcctool bin arm linux gnueabihf...