C++プロジェクトにluaを組み込む
環境
windows11 home
premake5
visual studio2022
7zip
luaの環境構築
luaのダウンロードと解凍
lua download areaから
lua-〇.〇.〇.tar.gz
をダウンロードする。
ダウンロードしたlua-〇.〇.〇.tar.gz
を7zipを2回使用して解凍する。
lua-〇.〇.〇
というフォルダができれば成功。
luaのビルド
premake5を使用してプロジェクトの作成を行う
lua-〇.〇.〇
にpremake5.lua
を配置する。
premake5.lua
の内容は以下のようにする。
workspace "Lua"
configurations { "Debug", "Release" }
platforms { "x64" }
location "build"
project "LuaLib"
kind "StaticLib"
language "C"
architecture "x64"
targetdir "bin/%{cfg.buildcfg}"
files { "src/*.c" }
excludes { "src/lua.c", "src/luac.c" }
filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
filter "configurations:Release"
defines { "NDEBUG" }
optimize "On"
premake5.lua
が完成したら
コマンドプロンプトを開き、
-
premake5.luaのある階層まで遷移する。
$ cd premake5.luaのある階層
-
premake5を実行する
今回はvs2022を使用するので2022としているが、
2019の場合は、vs2019と指定すると2019に合わせた出力が行われる$ premake5 vs2022
premake5が正常に動作すると
lua-〇.〇.〇
にbuild
というフォルダが作成され、
中に.sln
、.vcxproj
等のファイルが作成される
.sln
をダブルクリックをしてVisual Studioを開く。
VisualStudioを開いたら
上にあるメニューバーからビルド -> ソリューションのビルドを選択してビルドを行う。
これをDebug,Releaseの2つのパターン行う
ビルドが出来たら
lua-〇.〇.〇
フォルダの中にbin
というフォルダが作成される。
binの中にはDebug
,Relase
がありその中に.lib
等のファイルが存在していると
luaのビルドが完成した形になる。
C++プロジェクトに組み込む
プロジェクトの作成
適当なフォルダを作成して、中に
premake5.lua
を作成する
premake5.lua
の内容は以下
変数pathの文字列は自身の環境に合わせて変更してください。
workspace "LuaTutorial"
configurations { "Debug", "Release" }
platforms { "x64" }
location "build"
project "hello-lua"
kind "ConsoleApp"
language "C++"
architecture "x64"
targetdir "bin/%{cfg.buildcfg}"
-- Luaソースコードのパス。
local path = "C:/Program Files/lua-〇.〇.〇"
files { "src/**.h", "src/**.cpp" }
-- Luaのインクルードディレクトリ
includedirs { path .. "/src" }
-- ライブラリとしてリンクするLuaの名前
links { "lua" }
filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
-- デバッグビルド時に使用するライブラリディレクトリ
libdirs { path .. "/bin/Debug" }
filter "configurations:Release"
defines { "NDEBUG" }
optimize "On"
-- リリースビルド時に使用するライブラリディレクトリ
libdirs { path .. "/bin/Release" }
premake5.lua
が作成出来たら以下のコマンドを先ほど作成したpremake5.lua
の配置してある階層で実行する
$ premake5 vs2022
ソースコード作成
-
premake5.lua
と同じ階層にsrcというフォルダを作成する。 -
build/LuaTutorial.slnを開く
-
エディター上の
ソリューションエクスプローラー
を右クリックする
追加 -> 新しい項目 -> CPPファイル
を選択して
ファイル名をmain
場所を1で作成したsrcにして追加をクリックする。
4 追加したcppに以下のソースコードをペーストする
#include <lua.hpp>
int main() {
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luaL_dostring(L, "print('Hello, World!')");
lua_close(L);
return 0;
}
- F5の実行で、*Hello, World!*とコンソールに出力されると
C++にluaの組み込み成功
Discussion