Скомпилировать статический файл в исполняемый файл - PullRequest
2 голосов
/ 07 февраля 2012

Допустим, у меня есть программа, которая создает файл базы данных и импортирует в него данные из файла .sql.

Если я не хочу, чтобы случайный файл .sql плавал вокруг моего каталога, есть ли способ скомпилировать этот статический файл в исполняемый файл для использования без необходимости копировать его содержимое в строку в файле C? Определить заявление, возможно?

Ответы [ 3 ]

4 голосов
/ 07 февраля 2012

Используйте 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 */
}
2 голосов
/ 07 февраля 2012

Найдите утилиту, которая преобразует произвольный двоичный файл в объектный файл (например, bin2obj в Linux).Затем вы можете просто связать данные в свой exe без необходимости конвертировать их в исходный код C.

0 голосов
/ 07 февраля 2012

Вы можете преобразовать операторы в файле SQL в набор (массив) строк, поместить строки в исходный файл и построить ваше приложение с этим. Используйте #define для создания имен для индексов в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...