我想在C++中使用Lua,但是我無法編譯我的代碼。我正在使用目前爲5.3的最新版本的Lua。我的IDE是Code :: Blocks。到目前爲止,我在下面的指南這樣的: https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/ http://gamedevgeek.com/tutorials/getting-started-with-lua/在C++中使用Lua
但是他們沒有解釋很多關於如何設置的Lua用C :: B。我已經從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
看來我得把-llua到「Opther連接選項」,但目前還沒有.a,.so或.lib文件包含在lua.org的軟件包中。
我不知道如何做到這一點在C :: B,但你必須鏈接lua庫。或者,您也可以將源文件包含到您的項目中,但那不是「正確」的方式。像任何其他庫一樣鏈接庫。 – pschulz
@pschulz我認爲Lua的設計是爲了讓你可以添加源文件。 – immibis
@pschulz是否有一個一般的解釋如何鏈接庫?每次我搜索這個時,我都會在論壇上得到模糊的解釋,但是從來沒有寫得很好的一步一步的教程。這讓我覺得,當我學習這門語言時,我錯過了一些微不足道的東西。之前我設立SDL時,我很幸運,因爲Lazyfoo詳細解釋了一切。此時,我將所有.h文件包含在包含庫中,並將所有.c文件放在.cpp文件旁邊,但仍然收到相同的錯誤。 – Letokteren