On Thu, 20 May 2010, Mark Ainsworth wrote:
Hello, at link time I would like to include the contents of a binary file into the output executable, in a separate segment. In my code I would then read this as an array. I've done this before with other compilers / linkers, but not with gcc. Can you show me the directives to do this?
You can use objcopy (part of binutils) to do this. For example: objcopy -I binary image.png -O elf64-x86-64 -B i386:x86-64 image_png.o You can then access the contents of image.png like so: extern const uint8_t _binary_image_png_start[]; extern const uint8_t _binary_image_png_size[]; const uint8_t* get_image_png(unsigned* size) { *size = (uintptr_t) _binary_image_png_size; return _binary_image_png_start; } Hope that helps.