DLL для LUA плагина

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: DLL для LUA плагина

Post by Shmuel »

Latest post of the previous page:

Поверьте, что мне намного проще было бы собрать, чем объяснять.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

Re: DLL для LUA плагина

Post by ladserg »

Shmuel wrote:Поверьте, что мне намного проще было бы собрать, чем объяснять.
Я как раз понял, просто подключив LUA вы значительно расширили потенциал Far Manager, теперь он может спокойно тягаться по возможностям автоматизации с Emacs, только у Emacs нет редактора, у Far'а он есть.

У меня тут при сборке матерится:

Code: Select all

C:\1\far_project\test>make
gcc -o test.dll luaplug.o -Wl,--kill-at -shared -s -m32  -LC:\1\far_project\farmanager-read-only\unicode_far\Release.32.gcc -llua51 -lluafar3
c:/language/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llua51
c:/language/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.1/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lluafar3
collect2.exe: error: ld returned 1 exit status
make.EXE": *** [test.dll] Error 1
Это мне нужно библиотеки куда то сунуть в область видимости?
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

Re: DLL для LUA плагина

Post by ladserg »

ОЙ, всё, разобрался, надо было make запускать из под bash.

Вы уверены, что писателям плагинов на LUA необходимо занять такие вещи?

П.С. Осталось теперь разобраться как собирать x64 версию библиотечки :-)
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: DLL для LUA плагина

Post by Shmuel »

У меня без bash. Да, там есть одно допущение во вставляемом мейкфайле... ладно, нет времени сейчас.
Вы уверены, что писателям плагинов на LUA необходимо занять такие вещи?
Не уверен. Но также и не уверен, что это - моя обязанность. Ну не может - не надо.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

Re: DLL для LUA плагина

Post by ladserg »

Shmuel wrote:У меня без bash. Да, там есть одно допущение во вставляемом мейкфайле... ладно, нет времени сейчас.
Я там заменил

Code: Select all

DIRBIT = 32
на

Code: Select all

ifndef DIRBIT
  DIRBIT = 32
endif
Сейчас пока ломаю голову как научить mingw у меня собирать x64 бинарники
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: DLL для LUA плагина

Post by Shmuel »

Для этого нужен MinGW64.
И комстрока наподобие: make DIRBIT=64 LUAEXE=c:\exe32\lua.exe PATH=C:\MinGW64\bin.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

Re: DLL для LUA плагина

Post by ladserg »

Shmuel wrote:Для этого нужен MinGW64.
И комстрока наподобие: make DIRBIT=64 LUAEXE=c:\exe32\lua.exe PATH=C:\MinGW64\bin.
Ага, поставил сборку MinGW поддерживающую сборку x64 бинарников. А LUAEXE=c:\exe32\lua.exe для чего?
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

Re: DLL для LUA плагина

Post by ladserg »

Всё получилось, для полного счастья пришлось в файле $(FARDIR)\..\plugins\luamacro\luafar\luaplug.mak строки:


заменить на


Теперь файл makefile-x32 (генерация x32 версии) выглядит так:


makefile-x64:


правда каждый раз приходится удалять luaplug.o.

Сам mingw64 отсюда: (мож кому пригодится).
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: DLL для LUA плагина

Post by Shmuel »

Не помню, команду скопировал из истории.
Возможно из-за того, что указан PATH=C:\MinGW64\bin, и из-за этого lua.exe не находится.

DIRBIT и TARGET можно указывать с комстроки, тогда ваше изменение luaplug.mak не нужно, а также можно обойтись одним мейкфайлом для x32 и x64.
ladserg
Posts: 234
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 5 times
Been thanked: 6 times

Re: DLL для LUA плагина

Post by ladserg »

Shmuel wrote:Не помню, команду скопировал из истории.
Возможно из-за того, что указан PATH=C:\MinGW64\bin, и из-за этого lua.exe не находится.

DIRBIT и TARGET можно указывать с комстроки, тогда ваше изменение luaplug.mak не нужно, а также можно обойтись одним мейкфайлом для x32 и x64.
Хм, про DIRBIT и TARGET из коммандной строки я как то не подумал.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

gotar wrote: использовать как образец для подражения
Для начинающих писателей LuaFAR-плагинов образец такой: http://forum.farmanager.com/viewtopic.p ... 42#p122642
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by gotar »

Для того чтобы это сработало, гдето должно быть написано

#ifdef EXPORT_OPEN
..
#endif

правильно ли я понял, и как называется этот файл? Какую версию gcc лучше использовать?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

gotar wrote: как называется этот файл?
Вы вполне в состоянии сами разобраться.
gotar wrote: Какую версию gcc лучше использовать?
4.7 и выше точно работают.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by gotar »

А какую сборку gcc Вы используете?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

gotar wrote: А какую сборку gcc Вы используете?
У меня их несколько стоит. Это не критично.
Karagy
Posts: 57
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

LuaFAR — библиотека для создания плагинов на языке Lua

Post by Karagy »

Модель эксепшенов (sjlj, dwarf, seh) имеет значение? А то эти mingw gcc все такие разные.
Post Reply

Return to “Нужна помощь”