C++にLuaを組み込もうとして悪戦苦闘しました……。
やった手順だけ書き残します。
環境
- macOS Catalina ver10.15.1
- Apple clang version 11.0.0
- Lua 5.3.5
手順
1.Luaのソースファイルをダウンロード
何ダウンロードすればいいのか分からなかったのでソースファイルを持ってきました。
Lua公式ページからlua-5.3.5.tarをダウンロードして解凍。
2.libファイルを作る
ここで、つまづいた……。
libファイルを作らなきゃいけないので、解凍したディレクトリに移動してmakeします。
makefileがくっついてるのでできるはず。
$ make macosx
makeしたらliblua.a
が作成されていることを確認。こいつを使用します。
ライブラリのファイル名は常に接頭辞libで始まり、拡張子として.a(静的ライブラリ)あるいは.so(ダイナミックリンクライブラリ)が使用される。
3.ビルドできるか試す
私はプロジェクトでmakeを使っているのでそこに組み込みます。
さっきのliblua.a
の場所を指定します。
g++ -o (オブジェクトファイル) -L./include/lua -llua
なんだこれ。。。最初は思いましたがこれには意味があります。
-
-Ldir
-
-L
の後にスペースを開けずにディレクトリを指定します
-
-
-llib
-
-l
の後にスペースを開けずにライブラリファイル名を指定します - 指定の仕方が特殊で、頭の
lib
と拡張子.a
を除いた名前をここに入れます
-
4. 完了
こんなりすんなりいけばいいんですが、1日位かかりました……。
おまけ
途中でNo rule to make target
とかエラーが出る人は、パス間違い、ファイル間違い、スペルミス、makefileの書き方ミスとかが多いそうです。