Which program creates a C array given any file?

前端 未结 5 1475
执念已碎
执念已碎 2020-12-07 17:33

I remember seeing in the past a program that would take any file and generate a C array representing that file as output; it would prevent distribution of a separate file in

5条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-07 18:23

    For large files, converting to text and then making the compiler parse it all over again is inefficient and unnecessary. Use objcopy instead:

    objcopy -I binary -O elf32-i386 stuff stuff.o
    

    (Adjust the output architecture as necessary for non-x86 platforms.) Then once you link it into your program, you can access it like so:

    extern char _binary_stuff_start[], _binary_stuff_end[];
    #define SIZE_OF_STUFF (_binary_stuff_end - _binary_stuff_start)
    
    ...
    
    foo(_binary_stuff_start[i]);
    

提交回复
热议问题