创建SQLite的DLL和LIB

创建SQLite的DLL和LIB,第1张

概述下载源码包两个: sqlite-dll-win32-x86-3081101.zip,里面提供了导出sqlite3的函数的文件sqlite3.def 主要用于生成LIB文件,确定链接使用 sqlite-preprocessed-3081101.zip,提供了源码文件,但是删除shell.c和tclsqlite3.c文件   1.新建win32控制台程序,名称sqlite3   2.选择生成DLL  

下载源码包两个:

sqlite-dll-win32-x86-3081101.zip,里面提供了导出sqlite3的函数的文件sqlite3.def

主要用于生成liB文件,确定链接使用

sqlite-preprocessed-3081101.zip,提供了源码文件,但是删除shell.ctclsqlite3.c文件

1.新建win32控制台程序,名称sqlite3

2.选择生成DLL

3.解压压缩包,将sqlite-preprocessed-3081101的文件复制到工程文件夹下(除了shell.c以及tclsqlite.c)

4.通过添加存在文件,将源码添加到编译项目中

5设置模块定义文件sqlite3.def,否则生成的dll没有对应的lib

7.添加预定义选项sqlITE_CORE,sqlITE_ENABLE_ColUMN_MetaDATAsqlITE_ENABLE_RTREE,这是sqlite3的宏定义。

8.F7生成相应的dlllib

编译小细节:

指定函数的导出文件:sqlite3.defs

属性》》链接器》》输入》》模块定义文件(sqlite3.def),请注意这种情况下,sqlite3.def文件和编译环境平级。

后果:不会生成sqlite3.lib文件

指定预编译宏:

属性》》C/C++》》预处理器》》预处理定义》》

sqlITE_CORE

sqlITE_ENABLE_ColUMN_MetaDATA

sqlITE_ENABLE_RTREE

后果:

1>sqlite3.def : error LNK2001: 无法解析的外部符号sqlite3_column_database_name

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_column_database_name16

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_column_origin_name

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_column_origin_name16

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_column_table_name

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_column_table_name16

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_rtree_geometry_callback

1>sqlite3.def :error LNK2001: 无法解析的外部符号sqlite3_rtree_query_callback

前面6个函数,必须定义了sqlITE_ENABLE_ColUMN_MetaDATA才能够将函数导出,一般情况下,这些函数,我们可以直接在sqlite3.def文件中删除,不导出

后面2个函数,必须定义了sqlITE_ENABLE_RTREE才能够将函数导出,如果我们不适用R树的空间搜索功能,这些函数,我们可以直接在sqlite3.def文件中删除,不导出

总结

以上是内存溢出为你收集整理的创建SQLite的DLL和LIB全部内容,希望文章能够帮你解决创建SQLite的DLL和LIB所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1179298.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存