我有一个使用SQLite的C++程序。我希望将SQL查询存储在一个单独的文件中--一个纯文本文件,而不是源代码文件--但将该文件像资源一样嵌入到可执行文件中。
(它必须在Linux上运行,所以据我所知,我不能将它存储为实际的资源,尽管如果它是Windows的话就很完美了。)
有没有什么简单的方法可以做到这一点,或者它实际上需要我为Linux编写自己的资源系统?(这很容易实现,但需要更长的时间。)
发布于 2008-09-16 14:17:44
可以使用objcopy将文件内容绑定到程序可以使用的符号。例如,有关更多信息,请参见here。
发布于 2008-09-16 14:11:28
使用宏。从技术上讲,该文件应该是源代码文件,但它不会是这样。示例:
//queries.incl - SQL queries
Q(SELECT * FROM Users)
Q(INSERT [a] INTO Accounts)
//source.cpp
#define Q(query) #query,
char * queries[] = {
#include "queries.incl"
};
#undef Q
稍后,你可以在同一个文件中对该文件进行各种其他处理,比如你想要数组和它们的哈希图,你可以重新定义q来做另一项工作,并完成它。
发布于 2008-09-16 14:12:52
您始终可以编写一个小程序或脚本,将文本文件转换为头文件,并将其作为构建过程的一部分运行。
https://stackoverflow.com/questions/72616
复制相似问题