Populate an array at compile-time from file

Part of your build process can be to run a program which takes the file as input and generates a C++ source file which defines it as an array, something like:

char arrayFromFile[] = {
    0x01, 0x02, 0x99, ...  and so on
};

The program itself could be part of your source code.

Then just compile that program later in the build cycle. For example, you may have the following makefile segment:

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

Tags:

C++

Arrays