我试图用静态链接sqlite3的没有成功。 我使用的是“etc.c.sqlite3”头和sqlite3的融合。 要创建我都试过VC ++和MinGW-GCC的.LIB文件,这两个成功编译源文件 - 但他们都产生COFF对象格式(optlink,其DMD使用,可与OMF)。 在“digitalmars.D”阅读吨的职位后,我已经尝试了几种不同的解决方案。
objconv:
试图转换与GCC创建LIB文件,导致不确定的符号,如__divdi3和__muldi3,没能解决这个问题。
也试过这种转换的sqlite3.o文件* OBJ,然后用digitalmars“LIB.EXE” - 不成功,以及
上产生的LIB一个VC试图objconv失败,因为:“SQLite.lib是导入库”
IMPLIB:
- 如果我请从sqlite.org和使用IMPLIB预编译的DLL,它生成一个lib文件,但名称重整似乎并不匹配,因为即使我与静态库链接,我仍然收到同样的sqlite的错误(例如未定义符号
_sqlite3_open
,_sqlite3_errmsg
,_sqlite3_close
...
coffimplib:
如果我使用coffimplib在VC ++创建的库文件,该程序生成一个几乎空文件(〜2KB)只包含垃圾(在所有即没有符号和大多只是“空”值)。
如果我做同样与海湾合作委员会建立图书馆,coffimplib抱怨“不导入库”,并且不产生转换后的库文件。
如果我用DMC编译sqlite3的合并,编译失败抱怨吨的错误。 所以我在这里,陷在无处,没有任何人有任何意见或建议什么可能解决这个问题?
注意:我不想用一个DLL,但使用SQLite静态链接(可执行文件的大小问题)。