在WinCE下编译sqlite3生成动态链接库
Posted zieckey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WinCE下编译sqlite3生成动态链接库相关的知识,希望对你有一定的参考价值。
作者:zieckey( zieckey@yahoo.com.cn )
All Rights Reserved!
一. 编译动态链接库库文件
下面的是我的编译过程,或许对你有些帮助:
1). 打开eVC新建一个“WCE Dynamic-Link Library”工程,命名为:sqlite3
2). 在接下来的对话框中选择"An empty Windows CE DLL project",点击 FINISH,之后再点击 OK
3). 将源码中所有的 *.c *.h *.def 复制到工程文件夹下
4). 在 Source Files 中添加除shell.c和tclsqlite.c这两个文件以外所有 *.c 的SQLite源文件文件
5). 在 Header Files 中添加所有 *.h 的SQLite源文件文件
6). 将 SQLite 源文件中的 sqlite3.def 文件添加到在工程的Source File中
7). 在eVC中选好你要编译的平台,例如“Win32 (WCE emulator) Debug”
8). 好了,开始编译,Build(F7)一下
也许会遇到下面的错误:
E:/zieckey/sqlite3/sqlite3ext.h(22) : fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory
经检查发现,源码中包含sqlite3.h都是以 #include <sqlite3.h> 方式包含的,这就是说编译器在系统默认路径中搜索,
这样当然搜索不到 sqlite3.h 这个头文件啦,这时可以改为 #include "sqlite3.h" ,让编译器在工程路径中搜索,
但是如果还有其他地方也是以 #include <sqlite3.h> 方式包含的,那么改源码就显得有点麻烦,好了,我们可以这样:
在菜单栏依次选择:Tools->Options...->Directeries
在下面的Directeries选项中输入你的sqlite3.h的路径
还是会看到一百多个warning,这些大多是强制类型转换引起的,还好编译出来的dll可以正常使用。
最后我们在工程目录的 emulatorDbg 目录生成了下面两个重要文件:
动态链接库文件 sqlite3.dll 和引入库文件 sqlite3.lib
注明:生成静态库方法同上,只有一步不同,将上面第一步改为
打开eVC新建一个“WCE Static Library”工程,命名为:sqlite3
以上是关于在WinCE下编译sqlite3生成动态链接库的主要内容,如果未能解决你的问题,请参考以下文章
linux ubantu下编译node source code
Linux下编译.c文件时sqlite3找不到库文件如何解决?(undefined reference to `sqlite3_open')