Часть процесса сборки может быть, чтобы запустить программу, которая принимает файл в качестве входных данных и генерирует C++ исходный файл, который определяет его как массив, что-то вроде:
char arrayFromFile[] = {
0x01, 0x02, 0x99, ... and so on
};
Программа сама по себе может быть частью вашего исходного кода.
Затем просто скомпилируйте эту программу позже в цикле сборки. Например, вы можете иметь следующий makefile
сегмент:
generate: generate.cpp
g++ -o generate generate.cpp # build data generator
data.cpp: data.dat
generate data.dat >data.cpp # create c file with data
prog: prog.cpp data.cpp
g++ -o prog prog.cpp data.cpp # create program from source and data
Вы можете написать программу «драйвер», который генерирует исходный файл. Он будет считывать данные из файла и вставлять их в исходный файл. –
Вы можете интегрировать 'xxd -i' или' objcopy' в свою сборку. См. Http://stackoverflow.com/questions/1155578/which-program-creates-a-c-array-given-any-file –
Я не уверен, но вы можете взглянуть на 'constexpr' в C++ 11. – holgac