Como usar LuaJIT da mesma forma que Lua em um programa C ++?

9

Estou usando Lua no meu programa C ++ , como uma biblioteca. Mas eu li que LuaJIT é uma implementação melhor.

É possível substituir com LuaJIT com poucas mudanças? Quão?

Zhen
fonte
4
Apenas substitua os arquivos de origem se estiver compilando a partir da fonte ou a DLL se estiver usando o pré-compilado. LuaJIT deve ser um substituto para o estoque lua, portanto, ele deve funcionar apenas substituindo-o.
Panda Pyjama
4
@PandaPajama que provavelmente deve ser uma resposta, não um comentário #
ashes999
Não é tão simples no Mac OS X
finnw
Aqui está uma discussão por e-mail relevante sobre os prós / contras de várias implementações de Lua.
Anko

Respostas:

5

Apenas substitua os arquivos de origem se estiver compilando a partir da fonte ou a DLL se estiver usando o pré-compilado (preferencial).

De acordo com o Guia de Instalação :

LuaJIT é compatível com API com Lua 5.1. Se você já incorporou Lua em seu aplicativo, provavelmente não precisará fazer nada para mudar para LuaJIT, exceto o link com uma biblioteca diferente:

LuaJIT deve ser um substituto para o estoque lua, portanto, ele deve funcionar apenas substituindo-o

Panda Pajama
fonte
2

Como o comentário do Panda Pajama sugere. É fácil uma substituição imediata.

  • Alterar o caminho de inclusão para obter o arquivo luaJIT lua.hpp
  • Faça o downgrade do código da API Lua 5.2 para a API Lua 5.1.
  • Vinculado à biblioteca LuaJIT em vez da biblioteca lua

A pior parte foi o downgrade para 5.1, especialmente a carga de módulos de função próprios no estado lua.

Zhen
fonte