Две функции main?
Lua должен быть собран как библиотека. Соответственно, там не будет  main()
Lua должен быть собран как библиотека. 
Да ничего подобного. ;-) Так как их все равно две, в файлах: luac.c; lua.c;
Если вы посмотрите внимательно, то ваши luac.c и lua.c - это дубликаты демонстрационных примеров.
А то, что делается в lua.c для иллюстрации вызова Lua, вам просто нужно текстуально перенести в ваш программный код C ... например, в функцию main() в нужное место.