Is there a Linux equivalent of Windows' "resource files"?

cibyr picture cibyr · Jan 4, 2010 · Viewed 22.5k times · Source

I have a C library, which I build as a shared object for Linux and a DLL for Windows with MinGW32. The API depends on a couple of data files (statistical models) which I'd really like to roll in with the SO/DLL so that deployment is just one file.

It looks like I can achieve this for Windows with a "resource file" compiled with windres, but then I've got to write a bunch of resource-handling code for Windows, and I'm still stuck with the files on Linux.

Is there a way to achieve the same functionality on Linux?

Even better, is there a portable solution?

Answer

Andrew McGregor picture Andrew McGregor · Jan 4, 2010

It's actually quite simple on Linux and other ELF systems: http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967

OS X has bundles, so you just build your library as a framework and put the file in the bundle.