как собрать плагины с помощью gcc из mingw?

Место, где разработчики плагинов могут поделиться своим опытом.
shpeka
Posts: 54
Joined: Tue 03 Jul, 2007 15:46
Has thanked: 2 times

Re: сборка Far'а и плагинов из исходников

Post by shpeka »

Latest post of the previous page:

Kerberos464 wrote:у меня х64 версия собирается с помощью х64 версии tdm64-gcc, а х86 - с помощью х86 версии tdm-gcc.
вы вроде как пытаетесь собрать х86 фар х64-битной версией gcc.
Именно, поскольку у них написано, что MinGW-w64
supports creating 32-bit or 64-bit programs.
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: сборка Far'а и плагинов из исходников

Post by 2useven10 »

build 2374 должен собраться
shpeka
Posts: 54
Joined: Tue 03 Jul, 2007 15:46
Has thanked: 2 times

Re: сборка Far'а и плагинов из исходников

Post by shpeka »

2useven10 wrote:build 2374 должен собраться
Да, 2375 уже собирается. Спасибо причастным :)

З.Ы. build.bat clean gcc 32/64 из build.bat должна собрать сразу две версии? Почему то собирает только x32...
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: сборка Far'а и плагинов из исходников

Post by 2useven10 »

build.bat gcc 32/64 -- собрать фар32 в gcc-x64, 32 -- 32/32, 64 -- 64/64
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

Re: сборка Far'а и плагинов из исходников

Post by GrAnD »

Собирал плагины из evel-programmers.

64-битный TDM MinGW может собирать как 64-битные так и 32-битные плагины. Но из-за небольшой ошибки в мэйках на сборке 32-битных валится из-за того, что у dlltool machine по-умолчанию x86-64.
Last edited by GrAnD on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Исправлено форматирование программного кода
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Собрать Far самому

Post by John Doe »

http://sourceforge.net/projects/mingwbu ... z/download
Собранный бинарник (не фар) требует libgcc_s_sjlj-1.dll
Как от этого избавиться?
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: Собрать Far самому

Post by 2useven10 »

добавить флаги линкера: -static-libgcc -static
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Собрать Far самому

Post by John Doe »

А куда это можно добавить, чтобы не приходилось дублировать в каждом Makefile?
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: Собрать Far самому

Post by 2useven10 »

Боюсь это зависит от системы сборки каждого бинарника...
Универсального ответа не знаю.
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Собрать Far самому

Post by John Doe »

Если взять gcc не с mingwbuilds, а из других источников (например), то libgcc линкуется статически и без дополнительных флагов, вот я и подумал что может быть они указываются где-то глобально.
Но это не особо важно.

А другой вопрос: как минимизировать размер получившегося dll/exe?
Например lua.exe, собранный с немодифицированным makefile, занимает 40 Кб
Тот же lua.exec farmanager.svn - 13 Кб.
Это не случайность, такая же картина с прочими "собственноручно" собранными dll/exe

Я понимаю что это вопрос чайника, и простого ответа скорее всего нет, но вдруг есть общие рекомендации
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: Собрать Far самому

Post by 2useven10 »

для начала можно поставить оптимизацию кода по размеру (-Os) и линкеру опцию strip (-s).
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Собрать Far самому

Post by John Doe »

Попробовал собрать что-то простое
lcl.o - 3645
cl.dll - 37888, т.е. в 10 раз больше.

2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: Собрать Far самому

Post by 2useven10 »

вполне приемлемо. у меня с -Os (и возможно другой версией компилятора) - 35к.
сравнимо с luamacro.dll, собственного кода и там и там немного, используемая библиотека одна.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Собрать Far самому

Post by DrKnS »

John Doe wrote:как минимизировать размер получившегося dll/exe?
...
Я понимаю что это вопрос чайника, и простого ответа скорее всего нет, но вдруг есть общие рекомендации
Общая рекомендация — не заниматься подобными глупостями.
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Re: Собрать Far самому

Post by 2useven10 »

Общая рекомендация — не заниматься подобными глупостями.
Каждый выбирает себе глупости сам. :popcorn:
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Собрать Far самому

Post by Shmuel »

GCC-7.1
cl.dll - 11264
luamacro.dll - 11776
Post Reply

Return to “Разработка плагинов”