的SQLite我試圖用靜態鏈接sqlite3的沒有成功。我正在使用'等c.sqlite3'標題和sqlite3合併。要創建我都試過VC++和MinGW-GCC的.LIB文件,這兩個成功編譯源文件 - 但他們都產生COFF對象格式(optlink,其DMD使用,可與OMF)。在閱讀「digitalmars.D」上的大量帖子後,我嘗試了幾種不同的解決方案。靜態鏈接與DMD(視窗86)
試圖轉換與GCC創建LIB文件,導致不確定的符號,如__divdi3和__muldi3,沒能解決這個問題。
也試過這種轉換的sqlite3.o文件* OBJ,然後用digitalmars 'LIB.EXE' - 不成功以及
在VC++嘗試objconv產生的lib失敗,因爲:「SQLite的的.lib是導入庫」
- 如果我下載從sqlite.org預編譯的DLL和使用IMPLIB,它產生人IB文件,但該名稱重整似乎並不匹配,因爲即使我與靜態庫鏈接,我仍然收到同樣的sqlite的錯誤(例如未定義的符號
_sqlite3_open
,_sqlite3_errmsg
,_sqlite3_close
...
如果我使用coffimplib在VC++創建的庫文件,該程序生成一個幾乎空文件(〜2KB)只包含垃圾(在所有即沒有符號和大多隻是「空」值)。
如果我做了GCC創建的庫一樣,coffimplib抱怨「不導入庫」,並且不產生轉換後的庫文件。
如果我用DMC編譯sqlite3的合併,編譯失敗抱怨噸錯誤。所以在這裏,我陷入了困境,有沒有人有任何想法或提示可以解決這個問題?
注意:我不想用一個DLL,但使用SQLite靜態鏈接(可執行文件的大小問題)。
你跟C編譯器得到什麼錯誤? –
噸和噸。它需要太多的方式來解決所有的錯誤(例如非法的投射,未知的標識) –
我下載並嘗試了DMC;看起來這些錯誤是由DMC附帶的Windows頭文件中的錯誤引起的。 –