假設我有一個程序可以創建數據庫文件,並從.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