为Windows Mobile设备编译SQLite合并

时间:2010-02-05 21:19:40

标签: c++ visual-studio sqlite compact-framework compilation

如何为Windows Mobile设备编译SQLite合并?

然后我想在控制台中使用它来运行一些命令。

我在智能设备的C / C ++中创建了一个空VS项目,然后将现有文件包含在Sources和Headers中。

当我尝试编译时,我得到: Error 1 error LNK2019: unresolved external symbol wmain referenced in function mainWCRTStartup corelibc.lib sqlite3

3 个答案:

答案 0 :(得分:2)

amalgamation文件包含main函数,因为它实际上只是sqlite库,而不是命令行界面程序。

您必须自己实现这些命令并链接到sqlite库。

答案 1 :(得分:0)

wmain函数是程序执行入口函数,表示由应用程序定义,但不是库。

您很可能为 Application 创建了一个项目,但SQLite是一个库,因此它没有定义(w)主函数。因此,您应该选择静态库Dynamic-Linked Library的项目类型。

您最好参考有关为Windows Mobile应用程序创建和设置项目的MSDN文档,并决定which project type to choose

Smart Device Development

答案 2 :(得分:0)

您可以将SQLite Amalgamation构建为库并链接它...但是如果您正在编写本机C ++应用程序,那么很多更容易将SQLite直接编译到您的项目中。

首先,按照项目向导设置创建“Windows应用程序”并选择“Emply Project”。选择No ATL,没有MFC,也没有预编译头。

成功构建空/骨架项目后,将SQLite Amalagamation中的sqlite3.csqlite3.h添加到项目中。

在包含wmain()的.CPP文件中添加#include "sqlite3.h"

最后,在您的wmain()函数中初始化代码之后 之前主消息循环添加以下内容:

sqlite3 *db;
sqlite3_open(":memory:", &db);

这是创建一个空的内存中SQLite数据库的最低限度必需代码。

如果上面的项目编译和链接 - 你应该好好去!