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

Ваша программа должна теперь правильно скомпилироваться и жизнь станет хорошей.

Другие вопросы по тегам