Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Другие языки > [Lua] не хочет работать


Автор: cipher 21.12.2006, 01:06
Такая трабла встала - Скачал Lua 5.1 с офиц. сайта, она даже исходники без проблем в MSVS 2003 скомпилила. Но у меня статьи по Lua 4.0, а в 5.1 они здорово поменяли имена всего API. В частности вместо lua_open юзают теперь lua_newstate. Но дело не в этом, при попытке скомпилить консольный проект в MSVS2003 говорит:
Код

lua_lesson_01 error LNK2019: unresolved external symbol "struct lua_State * __cdecl lua_newstate(void * (__cdecl*)(void *,void *,unsigned int,unsigned int),void *)" (?lua_newstate@@YAPAUlua_State@@P6APAXPAX0II@Z0@Z) referenced in function _main
lua_lesson_01 fatal error LNK1120: 1 unresolved externals

Все каталоги к lib и h файлам прописываю, пробовал даже в тупую полный путь указать. Вот пример не работающей проги:
Код

#include <lua.h>
#include <stdio.h>

//=============================================================================

#pragma comment(lib, "lua_build.lib")

//=============================================================================

int main()
{
  lua_State *inter = lua_newstate(0 ,0);
  if (!inter) printf("error");
  else printf("it is done");
  return 0;
}


Почему она не может слинковать lib'у? Или может кто знает статейки на последнюю Lua?

Автор: setq 21.12.2006, 11:11
Может всё-таки заюзать lua_open()?

Автор: FunnyFalcon 21.12.2006, 16:27
По моему они всю жизнь доку с исходиками дают. Или нет?
Кстати, по 5.0 по-моему чуть лучше была.

Автор: Rickert 21.12.2006, 17:48
cipher, ты уверене что подключаться должна только одна Lib'а?

Добавлено @ 17:55 
ЗЫ
дай ссылку, откуда сливал lua 8)

Автор: cipher 21.12.2006, 21:54
Rickert, где-то здесь сливал http://www.lua.org/download.html
Господа нужно поконструктивнее ответы давать. Хочется всё-таки понять откуда такая ошибка. В доках с Lua ничего не сказано про это

Добавлено @ 21:56 
И потом что значит "может все-таки lua_open попробовать" Эту функцию убрали вообще из API!!

Автор: Rickert 21.12.2006, 22:09
cipher, ща попробую скомпилить.

ЗЫ
http://lua-users.org/wiki/TutorialDirectory
Цитата

The tutorial is written for the current version of Lua, version 5.0.

Автор: Rickert 21.12.2006, 22:36
Ответ таков:
http://lua-users.org/wiki/BuildingLua
http://home.comcast.net/~vertigrated/lua/ReadMe.html
Чтобы скомпилить - надо указать, что это multi-thread dll и компилить не в Application(.exe), а в Static Library(.lib). Всё в настройках проекта указывается.

Добавлено @ 22:36 
Код

//=============================================================================

#include <lua.h>
#include <stdio.h>

//=============================================================================

#pragma comment(lib, "lua.lib")

//=============================================================================

int main()
{
  lua_State *inter = lua_newstate(0 ,0);
  if (!inter) printf("error");
  else printf("it is done");
  return 0;
}

//=============================================================================



Добавлено @ 22:37 
ЗЫ
В настройках проекта проставлены пути к заголовочным файлам и папке с либами.

Автор: setq 22.12.2006, 15:49
cipher, я в этом разбираюсь и правда не очень хорошо. Использую Dev-C++ и Lua 5.1 . Пробовал откомпилировать пример с lua_open() -- работает..

Автор: cipher 25.12.2006, 16:37
Rickert, у тебя проблемы с языком. В частности с английским 8))) Не обижайся конечно, но это факт! Я пытаюсь прикрутить интерпритатор Lua к своей с++ проге, а ты мне статьй выдаешь про то как собрать сам интерпритатор из исходников. Чуешь разницу? Хотя ссылки всё равно достаточно интересные. Итак вопрос остаётся открытым. Как прикрутить Lua к своей программке?

Добавлено @ 16:41 
Я имею ввиду, чтобы потом можно было скрипты писать отдельным ресурсом, а моя прога будет брать их и скармливать Lua

Автор: Rickert 25.12.2006, 17:58
cipher, так ты сначала должен написать их, скомпилив либы, позже переименуемые в *.lua. А потом уже их юзать в программе. Как япо нял - у тебя была проблема с компилированием первых, а не с прикручиванием вторых. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)