SQLite第四课 创建windows动态库

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介:

下载源码包两个:

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文件中删除,不导出


     本文转自fengyuzaitu 51CTO博客,原文链接: http://blog.51cto.com/fengyuzaitu/1956641 ,如需转载请自行联系原作者




相关文章
|
6月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
7月前
|
编译器 开发工具 C语言
解锁QtCreator跨界神技!Windows下轻松驾驭OpenCV动态库,让你的跨平台开发如虎添翼,秒变视觉编程大师!
【8月更文挑战第4天】QtCreator是一款强大的跨平台IDE,便于创建多平台应用。本教程教你如何在Windows环境下集成OpenCV库至Qt项目。首先,下载匹配MinGW的OpenCV预编译版并解压。接着,在QtCreator中新建或打开项目,并在.pro文件中添加OpenCV的头文件和库文件路径。确保编译器设置正确。随后编写测试代码,例如加载和显示图片,并进行编译运行。完成这些步骤后,你就能在QtCreator中利用OpenCV进行图像处理开发了。
339 6
|
9月前
|
Windows 计算机视觉 Linux
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
该文档介绍了Qt的跨平台特性,并推荐在Windows和Linux开发中使用QtCreator。在Windows下添加动态库,可以通过Visual Studio配置.lib文件和.dll文件,或在QtCreator中使用"添加库"功能。在QtCreator中,选择库文件、包含路径,并配置Details,然后更新.pro文件,清除、qmake及构建项目。运行时确保.dll与.exe在同一目录下。
260 0
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
|
10月前
|
Linux 开发工具 计算机视觉
QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇
Qt是跨平台的开发工具,推荐使用QtCreator进行Windows和Linux开发。在Windows下,使用Visual Studio创建动态库时,需要配置.lib文件并确保运行时.dll与.exe在同一目录。在QtCreator中添加DLL动态库,可以通过右键项目,选择添加库,然后在Details界面配置库文件、包含路径和平台,最后更新PRO文件并进行清除、qmake和构建步骤。运行时同样需确保.dll文件与可执行文件在同一目录。
355 5
|
10月前
|
SQL Shell 数据库
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
|
SQL Shell 数据库
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
七天.NET 8操作SQLite入门到实战 - 第二天 在 Windows 上配置 SQLite环境
|
存储 网络协议 Unix
【C语言】标准库(头文件、静态库、动态库),windows与Linux平台下的常用C语言标准库(二)
【C语言】标准库(头文件、静态库、动态库),windows与Linux平台下的常用C语言标准库
|
编译器 Linux Shell
【C语言】标准库(头文件、静态库、动态库),windows与Linux平台下的常用C语言标准库(一)
【C语言】标准库(头文件、静态库、动态库),windows与Linux平台下的常用C语言标准库
|
PHP Windows
php windows多进程,php windows创建多进程,
php windows多进程,php windows创建多进程,
694 0
|
Linux 测试技术 iOS开发
【实测】windows下进程的创建和终止-python3
【实测】windows下进程的创建和终止-python3