間違いを犯しています。

naohiro
記事: 8
登録日時: 2年前

間違いを犯しています。

投稿記事 by naohiro » 3ヶ月前

ARCS さんが書きました: LuaのライブラリがC言語でコンパイルされているものであれば、C++から使う為にはlua.hppで良いのですが、
そちらにおいてあるのはC++でコンパイルされているため、lua.hppでインクルードしてしまうとC言語扱いされてうまくいきません。
lua.hppではなくlua.h、lualib.h、lauxlib.hをインクルードしてください。
ARCSさんが指摘している内容は間違いです。lua.hppは、C++のコードからLuaのC APIを利用するために設計されたヘッダファイルで、内部でextern "C"を使用してCのヘッダファイルを正しくインクルードしています。これにより、C++コンパイラでCの関数を問題なく呼び出すことができます。

もしC++からLuaを利用する際にC APIを直接使用する場合、lua.hppを使用するのが適切です。lua.h、lualib.h、lauxlib.hを直接インクルードすると、C++での名前修飾やリンク規約の違いに問題が生じる可能性があります。したがって、ARCSさんの提案は誤りです。
最後に編集したユーザー naohiro on 2024年8月08日(木) 10:17 [ 編集 2 回目 ]

コメントはまだありません。