Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с lua, компилятор выдает ошибку 
:(
    Опции темы
Duplex
Дата 24.9.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



Решил изучить Lua, и сразу проблема при компиляции такого кода 
Код

#include <stdio.h>
extern "C"
{
 #include <lua.h>
}
 
int main(int argc, char* argv[ ])
{
   lua_State* luaVM = lua_open(0);
 
   if (NULL == luaVM)
   {
      printf("Error Initializing lua\n");
      return -1;
   }
 
   return 0;
}


компилятор выдает ошибку
Код

------ Build started: Project: lua_test, Configuration: Debug Win32 ------

Compiling...
main.cpp
d:\documents and settings\dup13x\рабочий стол\lua_test\main.cpp(9) : warning C4002: too many actual parameters for macro 'lua_open'
d:\documents and settings\dup13x\рабочий стол\lua_test\main.cpp(9) : error C3861: 'luaL_newstate': identifier not found, even with argument-dependent lookup

Build log was saved at "file://d:\Documents and Settings\Dup13X\Рабочий стол\lua_test\Debug\BuildLog.htm"
lua_test - 1 error(s), 1 warning(s)


---------------------- Done ----------------------

    Build: 0 succeeded, 1 failed, 0 skipped


что делать что не так? я новичок.
PM MAIL ICQ   Вверх
Lazin
Дата 25.9.2007, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Код написан для другой версии библиотеки, смотри документацию на оф. сайте.
PM MAIL Skype GTalk   Вверх
Duplex
Дата 25.9.2007, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



В жокументации я нашел те же самые примеры, которые также выдают ошипки. Не могли бы вы показать на своих примерах?
PM MAIL ICQ   Вверх
Lazin
Дата 25.9.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Я когдато давно пробовал играться с этой библиотекой, сначала взял пример из статьи, попробовал скомпилировать - не получилось. В результате оказалось что интерфейс библиотеки (5-й версии) был изменен. В твоем случае макрос lua_open() должен вызываться без параметров. 
Найду на домашнем компе примеры - выложу.
PM MAIL Skype GTalk   Вверх
Duplex
Дата 25.9.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



Всеравно даже если не передаешь аргумент возникают ошибки... буду ждать твоих кодов
PM MAIL ICQ   Вверх
bsa
Дата 25.9.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Duplex, а может стоит воспользоваться Google и поискать примеры в инете?  smile 
PM   Вверх
Lazin
Дата 26.9.2007, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



В архиве с исходниками lua есть папка etc, там есть пример вызова ф-ии.
Вот мой код, но я толком не разобрался.
По идее должен выполниться скрипт test.lua и вывести на консоль Hello World
Код

#include <stdio.h>

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

int main(int argc, char* argv[ ])
{
    int iErr = 0;
    lua_State *lua = lua_open ();  // Open Lua
    luaopen_base(lua);     /* opens the basic library */
    luaopen_table(lua);    /* opens the table library */
    luaopen_io(lua);       /* opens the I/O library */
    luaopen_string(lua);   /* opens the string lib. */
    luaopen_math(lua);     /* opens the math lib. */

    if ((iErr = luaL_loadfile (lua, "test.lua")) == 0)
    {
       // Call main...
       if ((iErr = lua_pcall (lua, 0, LUA_MULTRET, 0)) == 0)
       {
          // Push the function name onto the stack
          lua_pushstring (lua, "helloWorld");
          // Function is located in the Global Table
          lua_gettable (lua, LUA_GLOBALSINDEX);
          lua_pcall (lua, 0, 0, 0);
       }
    }
    lua_close (lua);
    return 0;
}

Собственно скрипт
Код

-- Lua Hello World (test.lua)
function helloWorld ()
   io.write ("hello World")
   trace ("trace working now :)")
end


В папке doc есть мануал, в нем есть раздел по С API.
Ну и сабж
PM MAIL Skype GTalk   Вверх
Duplex
Дата 26.9.2007, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



У меня выскочили ошипки при компиляции

Код

------ Build started: Project: lua2, Configuration: Debug Win32 ------

Compiling...
main.cpp
Linking...
main.obj : error LNK2019: unresolved external symbol _lua_close referenced in function _main
main.obj : error LNK2019: unresolved external symbol _lua_gettable referenced in function _main
main.obj : error LNK2019: unresolved external symbol _lua_pushstring referenced in function _main
main.obj : error LNK2019: unresolved external symbol _lua_pcall referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaL_loadfile referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaopen_math referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaopen_string referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaopen_io referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaopen_table referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaopen_base referenced in function _main
main.obj : error LNK2019: unresolved external symbol _luaL_newstate referenced in function _main
Debug/lua2.exe : fatal error LNK1120: 11 unresolved externals

Build log was saved at "file://d:\Documents and Settings\Dup13X\Рабочий стол\lua2\Debug\BuildLog.htm"
lua2 - 12 error(s), 0 warning(s)


---------------------- Done ----------------------

    Build: 0 succeeded, 1 failed, 0 skipped

PM MAIL ICQ   Вверх
Lazin
Дата 26.9.2007, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Так нужно сначала собрать библиотеку. В общем там есть make-файл он собирает lua.exe luac.exe lua-5.1.a lua-5.1.dll, тебе нужно подключить к проекту статическую библиотеку.
luaWiki

PM MAIL Skype GTalk   Вверх
Duplex
Дата 26.9.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



Спасибо, почему-то я забыл про подключение библеотеки.
PM MAIL ICQ   Вверх
Duplex
Дата 26.9.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



Хмм... если вызвать функцию luaopen_io(), то при открытие программы выводится PANIC: unprotected error in call to LUA Api <no calling evironment>
PM MAIL ICQ   Вверх
Lazin
Дата 27.9.2007, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Попробуй вместо этого 
void luaL_openlibs (lua_State *L);

PM MAIL Skype GTalk   Вверх
Duplex
Дата 27.9.2007, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.7.2007
Где: Астрахань

Репутация: нет
Всего: нет



Да я понял уже, просто забыл отписаться. Ладно тему можно закрыть. Только вот получается что все хелпы на русском языке для Lua устарели и надо все искать на офф сайте. 
PM MAIL ICQ   Вверх
Lazin
Дата 27.9.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Duplex @  27.9.2007,  08:33 Найти цитируемый пост)
Да я понял уже, просто забыл отписаться. Ладно тему можно закрыть. Только вот получается что все хелпы на русском языке для Lua устарели и надо все искать на офф сайте.  

Кстати lua 5.1 вышла в 2003м году, русские хэлпы оч. сильно устарели.

PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0976 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.