2017-11-26 4 views
2

나는 c와 lua의 조합으로 작성된 프로그램을 가지고있다. c 프로그램을 컴파일하는 방법을 알고 있고, 루아 프로그램을 컴파일하는 방법을 알고 있지만 하이브리드 프로그램을 어떻게 단일 실행 파일로 컴파일 할 수 있는지 알지 못합니다. 또한 내가 루아 c API를 사용하고 있음을 주목하는 것도 중요합니다.c와 lua 프로그램을 하나의 실행 파일로 컴파일

편집 : 그냥 명확히하기 위해, 나는 어쨌든 모양이나 형태로 루아 통역을 사용하지 않을거야.

+0

가능한 [소스로부터 컴파일 루아와 함께 C 모듈을 작성]의 중복 (https://stackoverflow.com/questions/40842842/compile-lua-from-source-and -create-c-module-with-it) –

+1

이것은 중복 코드가 아닙니다.이 질문은 C 실행 파일에 Lua scrpt를 포함시키는 것에 관한 것이고, Ring Ø가 지적한 질문은 루아 인터프리터를 C 실행 파일에 임베딩하는 것입니다 OP가 할 수도 있고하지 않을 수도 있음) –

+1

호기심 : "루아 인터프리터를 사용하지 않을 때, 모양이나 형태"에서 앱에서 루아는 어떻게 움직이는가? – tonypdmtr

답변

3

내가 가장 쉬운 방법은 문자열을 프로그래밍하고이를 실행하기 위해 luaL_dostring() 함수를 사용하는 것입니다.

나는 확인하지 못했지만 루아 코드를 luac으로 컴파일하고 스크립트 소스 코드를 저장하는 대신 char [] 버퍼에 저장할 수 있다고 확신합니다. 이것은 (런타임이 아닌) 컴파일 타임에 한 번씩 Lua VM 바이트 코드에 대한 소스 코드 컴파일을 한 번 수행하면 작업 속도가 향상됩니다. 추천

예시 :

const char *luacode = "print('Hello')"; 
lua_State *L; 
... 
... 

    luaL_dostring (L, luacode); 
관련 문제