The standard binary output format generated by the linker for the Lynx target is a machine language program with an executable header. It is of course possible to change this behaviour by using a modified startup file and linker config.
You can also produce real carts with directory structures and encrypted
headers by modifying the startup and linker config files. There is a simple
example archive called
lynx-cart-demo in the
that shows how to create a complete bootable Lynx cart.