2016-07-14 4 views
2

C++でLuaを使用しようとしていますが、コードをコンパイルできません。私はLuaの最新バージョンを使用していますが、現時点では5.3です。私のIDEはCode :: Blocksです。彼らはCでのLuaを設定する方法についてはあまり説明しないただし:: B https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/ http://gamedevgeek.com/tutorials/getting-started-with-lua/C++でLuaを使用する

:これまでのところ私はこのようなガイドに従っていました。私はLuaのウェブサイトからバイナリのzipとソースの両方をダウンロードしました。私はsrcフォルダからファイルをどこに置くべきか分からない。これまでのところ私は、ディレクトリにlauxlib.h、lua.h、luaconf.hとlualib.hを入れている、とmain.cppに、次のコードを使用:これまでのところ

extern "C" { 
    #include "lua.h" 
    #include "lualib.h" 
    #include "lauxlib.h" 
} 

をしかし、私は常に最初の行でエラーが発生します

lua_State* L; 
L = luaL_newstate(); 
luaL_openlibs(L); 
luaL_dofile(L, "test.lua"); 
lua_close(L); 

:私はちょうど、次の小さなスニペットを実行しようとしています。私が現時点で得ているエラーは、リファレンスが 'luaL_newstate'に定義されていないことを示しています。

おそらく私はいくつかのファイルをソースからlibディレクトリに置くべきでしょうか?または、「プロジェクトビルドオプション」メニューの「その他のリンカーオプション」に追加する必要があるものはありますか?

編集:私はこの質問見つけた平均時間で

Lua 5.3 undefined references

私が「Optherリンカオプション」に-lluaを入れて持っているようだが、ないあります.a、.so、.libファイルは、lua.orgのパッケージに含まれています。

+2

私はC :: Bでこれを行う方法はわかりませんが、luaライブラリをリンクする必要があります。あるいは、プロジェクトにソースファイルを含めることもできますが、それは "正しい"方法ではありません。他のライブラリと同様にライブラリをリンクするだけです。 – pschulz

+0

@pschulz私はLuaがソースファイルを追加できるように設計されていると思っていました。 – immibis

+0

@pschulzライブラリをリンクする一般的な説明はありますか?私がこれを検索するたびに、私はフォーラムについて曖昧な説明をしますが、ステップチュートリアルではよく書かれたステップはありません。私が言語を学んだとき、私が何かを忘れてしまったという気持ちが本当にあります。前にSDLをセットアップしたとき、Lazyfooがすべてを詳細に説明して以来、私はラッキーでした。この時点で、私はすべての.hファイルをインクルードライブラリに持ち、すべての.cファイルを.cppファイルの隣に置いていますが、引き続き同じエラーが表示されます。 – Letokteren

答えて

0

最終的に質問に記載されているコードを実行させることができました。ここに私がしたことがあります。

  1. 代わりのLuaのサイトからソースをダウンロードするので、私は 最新LuaDistをダウンロードしました。このサイトは、Lua.orgの downloadページのバイナリカテゴリからアクセスすることもできます。

  2. このzipには、通常のincludeとlibフォルダがあります。

  3. 適切なフォルダに両方をコピーし、ビルドオプションメニューの コンパイラとリンカーのパスを設定しました。

  4. 次に、[リンカ設定]タブで、liblua.dll.a ファイルを追加しました。これはlibディレクトリにあります。この最後の2つのステップでは、SFML setup pageで追加のヘルプを見つけることができます。

  5. 最後のステップでは、liblua.dllファイルを のコンパイル済み実行ファイルの隣に配置しました。

関連する問題