1. 程式人生 > >vc編譯Sqlite原始碼小記

vc編譯Sqlite原始碼小記

主要參考了下面的文章:

講講按上面方法編譯時,碰到的問題和解決辦法:

1,模組定義檔案

原文是在模組定義檔案裡直接寫上sqlite3.def,但我在編譯的時候會報 錯:

error LNK1104: 無法開啟檔案“sqlite3.def“

但在使用絕對路徑後,這個錯誤就沒了。

究其原因,可能是我sqlite3.def的路徑沒放正確,vs2013到預設的路徑中沒有找到這個檔案所以報了錯。

2,SQLITE_ENABLE_FTS5 巨集問題

上個問題解決後,重新編譯,遇到了下面的問題:

error LNK2001: 無法解析的外部符號 sqlite3_fts5_may_be_corruptD:\xxxxxxxxxxxxx\Sqlite3\Sqlite3\sqlite3.defSqlite3

全文搜尋sqlite3_fts5_may_be_corrupt,發現有這個函式,但程式碼是灰色的。程式碼往上翻,找到了程式碼變灰的原因

#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5) 

因為 SQLITE_ENABLE_FTS5 未定義,所以sqlite3_fts5_may_be_corrupt的函式就沒有被編譯了。

在前處理器定義加上這個巨集定義,重新編譯,通過,並生成了lib和dll檔案