The ljc runtime library

The ljc runtime library or ljcrt is linked to the compiled executable. Ljcrt initialize the Lua (or LuaJIT if the option -j is used) virtual machine, initialize the dependencies, and execute the main Lua script. By default, the ljcrt is linked against the dynamic Lua 5.3 virtual machine.

Dynamic ljcrt (option -d)

By default, ljc compiles the main source file and link the dynamic ljcrt. The pros are a compatibility with all Lua and binary modules, but your executable will need the Lua VM to run (lua53.dll for Lua or lua51.dll for LuaJIT).

Static ljcrt (option -s)

The ljcrt can be statically linked, but at your own risk ! The main advantage is that you don't need to distribute the Lua VM with your executable, but with the risk of crash and other bugs if you have binary dependencies : binary modules for Lua are linked to the dynamic Lua VM. Use this option only if your source files are just Lua source files with no binary dependencies.