Estoy buscando una forma de insertar fácilmente cualquier información binaria externa en una aplicación C/C++ compilada por GCC.Incrustar recursos en ejecutable usando GCC
Un buen ejemplo de lo que me gustaría hacer es manejar el código del sombreador; puedo guardarlo en archivos fuente como const char* shader = "source here";
, pero eso es extremadamente poco práctico.
Me gustaría que el compilador lo hiciera por mí: en la compilación (fase de vinculación), lea el archivo "foo.bar" y vincule su contenido a mi programa, para que yo pueda acceder a los contenidos como datos binarios del código.
Podría ser útil para pequeñas aplicaciones que me gustaría distribuir como un solo archivo .exe.
¿GCC es compatible con algo como esto?
Los sombreadores no son BLOB. Ellos son texto normal. –
@VJo: luego trata el blob como texto. Es posible que deba hacer un poco de trabajo para asegurarse de que haya un ''\ 0'' al final del texto si lo necesita terminado así. Algunos experimentos pueden estar en orden. –
Gracias, Michael; se parece a lo que necesitaba, pero recibo el error 'objdump: foo.o: No se reconoce el formato de archivo', y otro similar al intentar vincular ese objeto con mi fuente. ¿Algún consejo? Estoy en Windows, usando tdm-mingw 4.5.1 y mi ld -v produce 'GNU ld (GNU Binutils) 2.20.51.20100319'. Puedo recurrir a su segunda sugerencia, por lo que es solo mi curiosidad a partir de ahora. :) – Kos