如何为Windows Mobile设备编译SQLite合并?
然后我想在控制台中使用它来运行一些命令。
我在智能设备的C / C ++中创建了一个空VS项目,然后将现有文件包含在Sources和Headers中。
当我尝试编译时,我得到:
Error 1 error LNK2019: unresolved external symbol wmain referenced in function mainWCRTStartup corelibc.lib sqlite3
答案 0 :(得分:2)
amalgamation文件不包含main
函数,因为它实际上只是sqlite库,而不是命令行界面程序。
您必须自己实现这些命令并链接到sqlite库。
答案 1 :(得分:0)
wmain函数是程序执行入口函数,表示由应用程序定义,但不是库。
您很可能为 Application 创建了一个项目,但SQLite是一个库,因此它没有定义(w)主函数。因此,您应该选择静态库或Dynamic-Linked Library
的项目类型。
您最好参考有关为Windows Mobile应用程序创建和设置项目的MSDN文档,并决定which project type to choose
答案 2 :(得分:0)
您可以将SQLite Amalgamation构建为库并链接它...但是如果您正在编写本机C ++应用程序,那么很多更容易将SQLite直接编译到您的项目中。
首先,按照项目向导设置创建“Windows应用程序”并选择“Emply Project”。选择No ATL,没有MFC,也没有预编译头。
成功构建空/骨架项目后,将SQLite Amalagamation中的sqlite3.c
和sqlite3.h
添加到项目中。
在包含wmain()
的.CPP文件中添加#include "sqlite3.h"
最后,在您的wmain()
函数中在初始化代码之后 之前主消息循环添加以下内容:
sqlite3 *db;
sqlite3_open(":memory:", &db);
这是创建一个空的内存中SQLite数据库的最低限度必需代码。
如果上面的项目编译和链接 - 你应该好好去!