配色: 字号:
使用VS2005编译SQLite3.5.1动态库
2022-10-24 | 阅:  转:  |  分享 
  
利用VS2005编译SQLite3.5.1



1)选择创建一个C++ Win32工程;



2)选择Win32 Project模板;



3)选择工程类型(编译目标类型)为Win32 DLL。



如果要创建静态库,则创建一个Win32 Console Application,并将编译类型选为“static library”。



4)将sqlite3.5.1的所有源码均加入工程。



注意需要将tclsqlite.c和shell.c、icu.c去掉。其中tclsqlite.c用于生成基于TCL的API,如果要编译,这需要另外下载tcl.h;shell.c用于生成命令行模式的sqlite.exe,如果是静态库形式则可以选择; icu是International Components for Unicode,如果需要则需另外下载相关头文件。



5)选择合适的RuntimeLibrary,默认为多线程模式。位置:Project->Properties->Configuration Properties->C/C++->Code Generation->Runtime Library



6)将编译模式改为c模式(TC)。位置:Project->Properties->Configuration Properties->C/C++->Advanced->Compile As



7)如果想要取得不必要的警告信息,则作如下处理:



- 在预处理定义处加 _CRT_SECURE_NO_WARNINGS

位置: Project->Properties->Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions



- disable 制定的警告信息(Project->Properties->C/C++->Advanced->Disable Specific Warnings): 4267;4244;4018;4311;4996;4312;4311



8)为避免如下警告(以及相关错误)



warning C4013: ‘TryEnterCriticalSection’ undefined; assuming extern returning int



在os.h的第72行,#include之前加:



#define _WIN32_WINNT 0x0400

#define WIN32_LEAN_AND_MEAN



9)OK,编译,即可成功!



以下为另一篇文章中提供的步骤说明:



1)选择创建一个“WIN32智能设备项目”;



2)应用程序类型选择:Dll;



3)将sqlite3.5.1的所有源码均加入工程(http://sourceforge.net/project/showfiles.php?group_id=88393 可以下载)。



注意需要将tclsqlite.c和shell.c、icu.c去掉。其中tclsqlite.c用于生成基于tcl的api,如果要编译,这需要另外下 载tcl.h;shell.c用于生成命令行模式的sqlite.exe,如果是静态库形式则可以选择; icu是internationalcomponents forunicode,如果需要则需另外下载相关头文件。



4) 选中项目(而不是文件),项目->属性->C/C++->预编译头-> 创建/使用预编译头: 选择不使用预编译头。



5) 选中项目(而不是文件),项目->属性->链接器->输入-> 模块定义文件: 输入“sqlite3.def”。



6)编译即可生成DLL和LIB文件。



献花(0)
+1
(本文系shouhuyanya...原创)