-
[Lua] Lua binary : lua.exe, luac.exe, wlua.exeLua 2024. 9. 20. 12:23
지난 글 (Lua installation & 개발 환경 구축)에서 컴파일된 Lua 바이너리를 사용했습니다.
컴파일되어 사용 가능한 Lua 프로그램은 lua.exe, luac.exe, wlua.exe의 세 종류가 있었습니다.
이전 글의 내용에서는 lua.exe만 사용했기 때문에, 이번 글에서는 다른 두 프로그램과 비교를 해 보려 합니다.
1. lua.exe
Lua 스크립트를 실행하는 인터프리터 입니다.
스크립트 파일을 실행하는 것 외에도 인자로 전달한 코드 조각을 실행하거나, 대화 모드로 코드를 실행할 수 있습니다.
2. luac.exe
Lua 스크립트를 컴파일하는 컴파일러입니다.
스크립트를 바이트코드로 컴파일하여 실행 성능을 향상시킬 수 있습니다.
더보기다음과 같은 예제 코드가 있을 때
print("Hello world!")
위 코드는 다음과 같이 luac를 이용해 바이트코드로 컴파일 할 수 있습니다.
luac -o helloworld.lc helloworld.lua
luac의 -o [Filename] 옵션은 지정한 lua코드의 결과 파일 이름을 지정합니다.
예제에서는 helloworld.lua 소스를 helloworld.lc파일로 출력하도록 지정했습니다.
-o옵션을 통해 출력 결과를 지정하지 않을 경우, 기본 파일 이름은 luac.out이 됩니다.
그 외에도 -l 명령어를 통해 opcode를 살펴보는 기능 등이 있으며, 옵션 리스트는 다음과 같이 확인할 수 있습니다.
> luac usage: luac.exe [options] [filenames] Available options are: -l list (use -l -l for full listing) -o name output to file 'name' (default is "luac.out") -p parse only -s strip debug information -v show version information -- stop handling options - stop handling options and process stdin
3. wlua.exe
Windows에서 사용할 수 있는 Lua 스크립트를 실행하는 인터프리터 입니다.
lua.exe와의 차이점은, 콘솔 출력의 유무입니다.
lua.exe는 콘솔 출력을 지원하며, wlua.exe는 콘솔 출력을 지원하지 않습니다.
공식 문서에서는 다음과 같이 기술하고 있습니다.
Also there are two Lua executables, one that is console based (lua5x.exe) and one that is a Windows application with no console output (wlua5x.exe). To use wlua interactively you must load a GUI module to create and manage windows and dialogs.
더보기다음과 같은 예제 코드가 있을 때
print("Hello world!")
lua.exe를 사용해서 코드를 실행할 경우 콘솔 출력이 발생합니다.
> lua.exe helloworld.lua Hello world! >
하지만, wlua.exe를 사용할 경우 콘솔 출력이 발생하지 않습니다.
> wlua.exe helloworld.lua >
콘솔 출력 외에, FileIO등과 같은 기능은 정상적으로 동작합니다.
lua와 wlua의 차이는 콘솔 출력의 유무로, wlua는 Windows에서 GUI환경에 최적화 된 인터프리터라 볼 수 있습니다.
대부분의 상황에서 lua.exe를 사용할 것 같습니다.
하지만 실행 속도와 관련이 있을 때에 luac를 고려할 수 있을 것이고, Lua로 GUI개발을 하게 될 경우 wlua를 고려할 수 있겠습니다.
감사합니다.
'Lua' 카테고리의 다른 글
[Lua] 다중 할당문 (Multiple assignments) (1) 2024.10.08 [Lua] 연산자 알아보기 (0) 2024.10.07 [Lua] Type (자료형) 알아보기 (0) 2024.10.04 [Lua] Lua installation & 개발 환경 구축 (1) 2024.09.19