$ echo 'Hello, world!' > hello-world.txt $ objcopy --input-target=binary --output-target=elf64-x86-64 \ hello-world.txt hello-world.o $ cat <<EOF > embed.c #include <stdint.h> #include <stdio.h> #define EMBED(NAME) \ extern const uint8_t _binary_##NAME##_start[]; \ extern const uint8_t _binary_##NAME##_size[]; #define DATA(NAME) _binary_##NAME##_start #define SIZE(NAME) (size_t)_binary_##NAME##_size int main() { EMBED(hello_world_txt); printf("%.*s", (int)SIZE(hello_world_txt), DATA(hello_world_txt)); } EOF $ gcc hello-world.o embed.c -o hello-world $ ./hello-world Hello, world!