我尝试与 sqlite3 静态链接但没有成功。我正在使用“etc.c.sqlite3”标头和 sqlite3 合并。为了创建 .lib 文件,我尝试了 VC++ 和 MinGW-gcc,它们都成功编译了源文件 - 但它们都生成 COFF 对象格式(DMD 使用的 optlink,与 OMF 一起使用)。在阅读了“digitalmars.D”上的大量帖子后,我尝试了几种不同的解决方案。
objconv: http://www.agner.org/optimize/#objconv
尝试转换使用 GCC 创建的 lib 文件,导致出现未定义的符号,例如 __divdi3 和 __muldi3,无法解决此问题。
还尝试将 sqlite3.o 文件转换为 *.obj,然后使用 digitalmars 'lib.exe' - 也不成功
在 VC++ 生成的 lib 上尝试 objconv 失败,因为:“SQLite.lib 是导入库”
implib: http://www.digitalmars.com/ctg/implib.html
- 如果我从 sqlite.org 下载预编译的 DLL 并使用 implib,它会生成一个 lib 文件,但名称修改似乎不匹配,因为即使我链接到静态库,我仍然收到相同的 sqlite 错误(例如 undefined象征
_sqlite3_open
, _sqlite3_errmsg
, _sqlite3_close
...
咖啡库: http://www.digitalmars.com/ctg/coffimplib.html
如果我使用 DMC 编译 sqlite3 合并,编译失败并抱怨tons的错误。所以我在这里,无处可去,有没有人有任何想法或技巧可以解决这个问题?
注意:我不想使用 DLL,而是与 sqlite 静态链接(出于可执行文件大小的考虑)。
尝试使用implib
with /system
switch.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)