I am cross compiling a program for a bare-metal environment and I want to have an array populated with the data I have stored in a file. Is there a way to do this read during compile-time?
Reason: Copy-pasting the data into the source seems ugly.
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
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With