C++ вставляет lua 5.2 неопределенную ссылку на `luaL_newstate' (ubuntu 14.04, Netbeans)
Поэтому я пытаюсь встроить Lua в C++, и каждый раз, когда я пытаюсь скомпилировать, я получаю эту ошибку:
/root/NetBeansProjects/test/main.cpp:20: undefined reference to `luaL_newstate'
/root/NetBeansProjects/test/main.cpp:31: undefined reference to `lua_settop'
/root/NetBeansProjects/test/main.cpp:35: undefined reference to `luaL_loadfilex'
/root/NetBeansProjects/test/main.cpp:35: undefined reference to `lua_pcallk'
/root/NetBeansProjects/test/main.cpp:38: undefined reference to `lua_close'
Я искал решение в течение нескольких часов, но не могу найти ничего полезного.
Я установил Lua: apt-get установил lua5.2 lua5.2-dev
Вот мой код:
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <string>
#include <lua5.2/lua.hpp>
using namespace std;
int main() {
// create new Lua state
lua_State *lua_state;
lua_state = luaL_newstate();
// load Lua libraries
static const luaL_Reg lualibs[] ={
{ "base", luaopen_base},
{ NULL, NULL}
};
const luaL_Reg *lib = lualibs;
for (; lib->func != NULL; lib++) {
lib->func(lua_state);
lua_settop(lua_state, 0);
}
// run the Lua script
luaL_dofile(lua_state, "test.lua");
// close the Lua state
lua_close(lua_state);
return 0;
}
Что я делаю неправильно?
1 ответ
Прежде всего, спасибо всем за помощь в этом.
Согласно моему комментарию, компилятор потерпит неудачу внутри Netbeans, если библиотека фактически не добавлена в проект.
Чтобы исправить это внутри Netbeans, щелкните правой кнопкой мыши проект (левая панель) -> Свойства -> Раскрывающийся список сборки -> Линкер -> щелкните три точки рядом с пунктами Библиотеки -> Добавить файл библиотеки PkgConfig -> Lua5.2
Ваша программа должна теперь правильно скомпилироваться и жизнь станет хорошей.