Intro lua ์คํฌ๋ฆฝํธ๋ฅผ ๋จ๋
์คํ ํ์ผ๋ก ๋ง๋ค์ด ์ฃผ๋ ํ๋ก๊ทธ๋จ (gcc๋ก ์ปดํ์ผ) ์ฝ๋๋ฅผ ์จ๊ธฐ๊ณ ๋น ๋ฅธ ๋จ๋
์คํ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ฐ๊พธ๊ณ ์ ํ๋ ๊ฒฝ์ฐ์ ์ ์ฉ ๋๋ ๊ฐ๋ฐ์ ์ฌ๋ฌ๊ฐ์ ๋ฃจ์ํ์ผ์ require๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ ํ๋๋ก ํฉ์น๊ณ ์ ํ ๋ luarocks๋ก ์ค์นํ๋ค. luarocks๋ก ์ค์น๋ ๋ชจ๋์ ~/.bashrc์ eval "$(luarocks path --bin)"๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ํฌํจ๋๋ค. ๋ฌธ์ ๋ ๊ฐ์ ๋ฆฌ๋
์ค๋ผ๋ ๋ฒ์ ๊ฐ ๋ฐฐํฌํ๊ฐ์ glibc ํธํ์ด ๋์ง ์๋๋ค๋ ์ ์ด๋ค. ๊ฑฐ์ ๋์ผํ ํ๊ฒฝ์์๋ง ๋ฐฐํฌ ๊ฐ๋ฅํ๋ค๊ณ ๋ณธ๋ค. ๋จ, alpine linux์ ๊ฒฝ์ฐ์๋ glibc ๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ณ , ์ฉ๋๋ ์๋ค. debian ๊ณ์ด ์๊ตฌ์ฌํญ: build-essential(gcc), lua, luastatic alpine Linux ์๊ตฌ์ฌํญ: build-base, clang, luajit, luastatic Install and Howto Install $ luarocks install --local luastatic # install luastatic $ export PATH=$PATH:$HOME/.luarocks/bin # set PATH for luarocks bin $ luastatic # show version and usage Compile Single Lua file $ luastatic myprogram.lua \ /usr/lib/x86_64-linux-gnu/liblua5.1.a \ -I /usr/include/lua5.1 $ ./myprogram Embed library.lua for require(โlibraryโ) $ luastatic myprogram.lua \ myprogram.lua \ library.lua \ /usr/lib/x86_64-linux-gnu/liblua5.1.a \ -I /usr/include/lua5.1 C library containing luaopen_() $ luastatic myprogram.lua \ library.a \ /usr/lib/x86_64-linux-gnu/liblua5.1.a \ -I /usr/include/lua5.1 LuaJit on Ubuntu - ์ฐ๋ถํฌ์์ LuaJit ์ฌ์ฉ $ sudo apt install luajit # install luajit - 2.1.0 $ sudo apt install libluajit-5.1-dev # install libluajit dev - 5.1 $ luastatic myprogram.lua \ /usr/lib/x86_64-linux-gnu/libluajit-5.1.a \ -I /usr/include/luajit-2.1 \ -no-pie LuaJit on Alpine - LuaJit, clang with musl lib static compile # apk add luajit luajit-dev # install luajit - 2.1.0 # apk add build-base clang make # install build base and clang # env CC=clang luastatic myprogram.lua \ /usr/lib/x86_64-linux-gnu/libluajit-5.1.a \ -I /usr/include/luajit-2.1 \ -no-pie ์ข ๋ ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐ Links https://github.com/ers35/luastatic
...