Page 2 of 5

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

Posted: Wed 10 Sep, 2014 19:29
by Shmuel

Latest post of the previous page:

Поверьте, что мне намного проще было бы собрать, чем объяснять.

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

Posted: Wed 10 Sep, 2014 19:38
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
Это мне нужно библиотеки куда то сунуть в область видимости?

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

Posted: Wed 10 Sep, 2014 19:48
by ladserg
ОЙ, всё, разобрался, надо было make запускать из под bash.

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

П.С. Осталось теперь разобраться как собирать x64 версию библиотечки :-)

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

Posted: Wed 10 Sep, 2014 20:07
by Shmuel
У меня без bash. Да, там есть одно допущение во вставляемом мейкфайле... ладно, нет времени сейчас.
Вы уверены, что писателям плагинов на LUA необходимо занять такие вещи?
Не уверен. Но также и не уверен, что это - моя обязанность. Ну не может - не надо.

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

Posted: Wed 10 Sep, 2014 20:17
by ladserg
Shmuel wrote:У меня без bash. Да, там есть одно допущение во вставляемом мейкфайле... ладно, нет времени сейчас.
Я там заменил

Code: Select all

DIRBIT = 32
на

Code: Select all

ifndef DIRBIT
  DIRBIT = 32
endif
Сейчас пока ломаю голову как научить mingw у меня собирать x64 бинарники

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

Posted: Wed 10 Sep, 2014 20:38
by Shmuel
Для этого нужен MinGW64.
И комстрока наподобие: make DIRBIT=64 LUAEXE=c:\exe32\lua.exe PATH=C:\MinGW64\bin.

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

Posted: Wed 10 Sep, 2014 20:50
by ladserg
Shmuel wrote:Для этого нужен MinGW64.
И комстрока наподобие: make DIRBIT=64 LUAEXE=c:\exe32\lua.exe PATH=C:\MinGW64\bin.
Ага, поставил сборку MinGW поддерживающую сборку x64 бинарников. А LUAEXE=c:\exe32\lua.exe для чего?

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

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


заменить на


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


makefile-x64:


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

Сам mingw64 отсюда: (мож кому пригодится).

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

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

DIRBIT и TARGET можно указывать с комстроки, тогда ваше изменение luaplug.mak не нужно, а также можно обойтись одним мейкфайлом для x32 и x64.

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

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

DIRBIT и TARGET можно указывать с комстроки, тогда ваше изменение luaplug.mak не нужно, а также можно обойтись одним мейкфайлом для x32 и x64.
Хм, про DIRBIT и TARGET из коммандной строки я как то не подумал.

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

Posted: Tue 24 Feb, 2015 21:49
by Shmuel
gotar wrote: использовать как образец для подражения
Для начинающих писателей LuaFAR-плагинов образец такой: http://forum.farmanager.com/viewtopic.p ... 42#p122642

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

Posted: Tue 24 Feb, 2015 21:59
by gotar
Для того чтобы это сработало, гдето должно быть написано

#ifdef EXPORT_OPEN
..
#endif

правильно ли я понял, и как называется этот файл? Какую версию gcc лучше использовать?

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

Posted: Tue 24 Feb, 2015 22:06
by Shmuel
gotar wrote: как называется этот файл?
Вы вполне в состоянии сами разобраться.
gotar wrote: Какую версию gcc лучше использовать?
4.7 и выше точно работают.

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

Posted: Tue 24 Feb, 2015 22:11
by gotar
А какую сборку gcc Вы используете?

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

Posted: Tue 24 Feb, 2015 22:18
by Shmuel
gotar wrote: А какую сборку gcc Вы используете?
У меня их несколько стоит. Это не критично.

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

Posted: Wed 04 Mar, 2015 09:19
by Karagy
Модель эксепшенов (sjlj, dwarf, seh) имеет значение? А то эти mingw gcc все такие разные.