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

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

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

Post by Shmuel » Wed 10 Sep, 2014 19:29

Latest post of the previous page:

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

ladserg
Posts: 214
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Wed 10 Sep, 2014 19:38

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: 214
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Wed 10 Sep, 2014 19:48

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

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

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

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 10 Sep, 2014 20:07

У меня без bash. Да, там есть одно допущение во вставляемом мейкфайле... ладно, нет времени сейчас.
Вы уверены, что писателям плагинов на LUA необходимо занять такие вещи?
Не уверен. Но также и не уверен, что это - моя обязанность. Ну не может - не надо.

ladserg
Posts: 214
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Wed 10 Sep, 2014 20:17

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

Code: Select all

DIRBIT = 32
на

Code: Select all

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

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 10 Sep, 2014 20:38

Для этого нужен MinGW64.
И комстрока наподобие: make DIRBIT=64 LUAEXE=c:\exe32\lua.exe PATH=C:\MinGW64\bin.

ladserg
Posts: 214
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Wed 10 Sep, 2014 20:50

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

ladserg
Posts: 214
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Wed 10 Sep, 2014 21:05

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


заменить на


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


makefile-x64:


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

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

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 10 Sep, 2014 21:09

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

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

ladserg
Posts: 214
Joined: Thu 19 Feb, 2009 14:51
Has thanked: 1 time
Been thanked: 1 time

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

Post by ladserg » Wed 10 Sep, 2014 21:15

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

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

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Tue 24 Feb, 2015 21:49

gotar wrote: использовать как образец для подражения
Для начинающих писателей LuaFAR-плагинов образец такой: viewtopic.php?p=122642#p122642

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Post by gotar » Tue 24 Feb, 2015 21:59

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

#ifdef EXPORT_OPEN
..
#endif

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

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Tue 24 Feb, 2015 22:06

gotar wrote: как называется этот файл?
Вы вполне в состоянии сами разобраться.
gotar wrote: Какую версию gcc лучше использовать?
4.7 и выше точно работают.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Post by gotar » Tue 24 Feb, 2015 22:11

А какую сборку gcc Вы используете?

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Tue 24 Feb, 2015 22:18

gotar wrote: А какую сборку gcc Вы используете?
У меня их несколько стоит. Это не критично.

Karagy
Posts: 56
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

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

Post by Karagy » Wed 04 Mar, 2015 09:19

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

Shmuel
Posts: 5166
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 145 times

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

Post by Shmuel » Wed 04 Mar, 2015 10:03

В последние год-два собираю плагины с помощью:
gcc.EXE (tdm-1) 4.7.1 -- для x86
gcc.EXE (tdm64-1) 4.7.1 -- для x64
Для обоих вариантов - sjlj. О каких-либо проблемах с этим мне пока не известно.

Post Reply

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