SQLite编译问题
從http://www.sqlite.org/主頁上獲得了SQLite的源文件,還沒有時間研究就在編譯上發(fā)生了不小的問題。
首先是碰到是,編譯之后,只產(chǎn)生了sqlite3.dll文件,不產(chǎn)生對應(yīng)的lib庫文件。
查看了下sqlite3.h代碼,發(fā)現(xiàn)了SQLITE_API的宏沒有定義導(dǎo)出用的__declspec(dllexport),只是做了一個空定義,就很自然的為在后面加上了。重新編譯了以后發(fā)現(xiàn),還是沒有任何導(dǎo)出函數(shù),也沒有生成任何的lib庫文件,這讓我一時間不知道如何是好。
在網(wǎng)上查了下,原來還要下載一個sqlite3.def模塊定義文件,并且包含到對應(yīng)的工程中去。
?
發(fā)現(xiàn)可以導(dǎo)出,但是遇到了第二個問題,sqlite3.def居然發(fā)現(xiàn)了一些無法一些無法識別的符號,就是所謂的Link2001錯誤。
這著實讓我頭疼了很久。畢竟我不可能認(rèn)為是源代碼寫的有問題吧。
查了很多文檔和資料才知道,需要在預(yù)處理器當(dāng)中該定義三個宏:
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_RTREE
THREADSAFE
還沒找到這三個用來定義的作用是什么,但顯然是函數(shù)編譯的開關(guān),可能還與sqlite3的版本管理有關(guān)系。這些復(fù)雜的問題只能暫且擱置了。
轉(zhuǎn)載于:https://www.cnblogs.com/BlueWinters/p/3776071.html
總結(jié)
以上是生活随笔為你收集整理的SQLite编译问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 文本滚动播放
- 下一篇: MySQL的ALTER命令