모든 루아 파일을 하나의 실행 파일에 포함하도록 C++ 프로젝트를 빌드하려면 어떻게해야합니까? 나는 사람들이 루아 파일을 편집하고 게임을 바꿀 수 없도록하고 싶다.프로젝트와 함께 루아 스크립트 빌드하기
윤리적일까요?
모든 루아 파일을 하나의 실행 파일에 포함하도록 C++ 프로젝트를 빌드하려면 어떻게해야합니까? 나는 사람들이 루아 파일을 편집하고 게임을 바꿀 수 없도록하고 싶다.프로젝트와 함께 루아 스크립트 빌드하기
윤리적일까요?
글쎄, 당신은 당신의 실행 파일로 모든 루아 소스를 넣어 원하는, 그래서 당신이 필요합니다
루아 파일에 대한 매핑 파일 이름의 의미 :
char lua_files[]={
"filename1\0filecontents1",
"filename2\0filecontents2",
0,
};
이 수를 빌드 할 때 Lua 파일의 디렉토리를 읽는 스크립트에 의해 자동으로 생성 될 수 있습니다.
선택적으로, 파일을 미리 컴파일 할 수도 있으므로 embeddded Lua 라이브러리에서 파서를 제거 할 수 있습니다.
package.searchers
에 등록하여 등록하십시오.나중에 사용자 지정 스크립트를 어떻게 든로드 할 수있게하려면 이전 검색자를 유지하고 원본에없는 파일이 필요하도록하십시오.
죄송합니다. 나는 당신이 의미하는 바를 머리 속에 쓰지 못합니다. –
@Ethan : 정교합니다. – Deduplicator
루아 파일'test.lua'가 lua_files []'lua \ test.lua'에'lua' 폴더에 있다고 가정 해 봅시다. 그냥 설명을 원해. –
사용 LuaJIT의 "embedded bytecode"기능 :
정적 응용 프로그램에서 모듈의 바이트 코드를 삽입하려면 오브젝트 파일을 생성하고 당신의 응용 프로그램에 연결합니다.
require()는 내 보낸 심볼 (Windows의 경우 * .exe 또는 lua51.dll)과 package.cpath의 공유 라이브러리에서 내장 바이트 코드 데이터를로드하려고합니다.
예 :
luajit -b test.lua test.obj # Generate object file
# Link test.obj with your application and load it with require("test")
도 http://stackoverflow.com/questions/194520/creating-standalone-lua-executables 참조하십시오. – lhf
[premake] (https://github.com/annulen/premake/blob/master/scripts/embed.lua)와 같이 텍스트로 처리하고 문자열을 정적으로 난독 화 (암호화 또는 압축) 할 수도 있습니다. 스크립트가 더 어려워 질 것입니다. –