假设我有一个程序可以创建数据库文件,并从.sql
文件向其中导入数据。将静态文件编译为可执行文件
如果我不想随机的.sql
文件在我的目录中浮动,有没有办法将这个静态文件编译为可执行文件以供使用,而不必将其内容复制到C文件中的字符串中?定义语句也许?
假设我有一个程序可以创建数据库文件,并从.sql
文件向其中导入数据。将静态文件编译为可执行文件
如果我不想随机的.sql
文件在我的目录中浮动,有没有办法将这个静态文件编译为可执行文件以供使用,而不必将其内容复制到C文件中的字符串中?定义语句也许?
您可以将SQL文件中的语句转换为字符串的集合(数组),将字符串放在源文件中并使用该文件构建应用程序。使用#define
为索引创建名称到数组中。
因此,我无法从sqlite中获取sql转储并从C中加载它,而不必将sql文件分开? – 2012-02-07 18:34:27
使用xxd
$ xxd -i data.sql > data.sql.c
则包括(或复制/粘贴)所产生的C文件(不是头)
可以包括全球...
#include <stdlib.h>
#include "data.sql.c" /* global scope */
...或功能范围
int foo(void) {
# include "data.sql.c" /* function scope */
}
查找将任意二进制文件转换为目标文件的实用程序(例如,在Linux上的bin2obj)。然后,您可以简单地将数据链接到您的exe文件,而无需将其转换为C源代码。
使用sqlite?这个数据库文件是如何创建的? – trojanfoe 2012-02-07 18:30:10