Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
1

Сборки MinGW(GCC-win32/win64) от niXman

30.07.2011, 22:48. Показов 199633. Ответов 450

с этого момента, буду производить тестовые/пререлизные/релизные сборки mingw.
файлы с пометкой snapshot и prerelease - не стабильные версии. в реальных проектах использовать не рекомендую. использую для тестирования новых фитчей.
файлы с пометкой release - стабильные, прошедшие тесты.
скачать можно тут.
скачать онлайн-инсталятор можно тут.
скачать msys2 можно тут

в скором времени начну формировать пакеты для разработчиков состоящие из компилятора(mingw), IDE(QtCreator/CodeBlock/Dev-C++/wxDev-cpp), и некоторого набора предкомпилированных библиотек(boost, Wx, Qt, OpenSsl, и еще каких-то.. понять бы что в спросе...). пакеты не будут требовать установки/настройки. распаковал - используй.

Не по теме:

старая ссылка тут.

43
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2011, 22:48
Ответы с готовыми решениями:

Как перекомпилить Win32 dll -> Win64
Привет форумчане. Подскжите как перестроить MS2005 стоящую на ХР что бы можно было перекомпилить...

Gcc без MinGW
Интересует вопрос, можно ли рабочий код (который без ошибок компилируется в Visual Studio)...

Win32 -> Win64 = BEX
Проблема появилась после переустановки вин32 ту 64. Проект был с 12 альфа скинами и библ bass.dll...

Упаковка ресурсов в exe. gcc (MinGW)
Здравствуйте. Возникла задача упаковать различного рода файлы в программу. Пробовал создавать...

450
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 01:49 361
Поковырял lto. Если всё делать правильно, то скорость выполнения может сильно возрастать (до 30%), но объем кода уменьшается незначительно. При этом скорость линковки падает очень сильно (как бы до скорости компиляции с теми же ключами). Такие дела.
0
Evg
Эксперт CАвтор FAQ
21192 / 8208 / 633
Регистрация: 30.03.2009
Сообщений: 22,521
Записей в блоге: 30
30.12.2013, 11:03 362
Цитата Сообщение от nenin Посмотреть сообщение
Если всё делать правильно, то скорость выполнения может сильно возрастать (до 30%)
Такое, как правило, говорит о неправильном проектировании программы

Цитата Сообщение от nenin Посмотреть сообщение
При этом скорость линковки падает очень сильно
В процессе линковки запускается докомпиляция (с учётом межмодульных фич)
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.12.2013, 12:53 363
Цитата Сообщение от nenin Посмотреть сообщение
но объем кода уменьшается незначительно
Что неудивительно на своём коде, который используется в объёме, близком или равном 100%. А вот стандартные библиотеки под ножницами lto - совсем другой коленкор. И дело тут даже не в объёме, хотя это тоже приятно, а в оптимизации стандартных функций и возможности задёшево освободиться от динамически линкуемой RT.
Впрочем, похоже, что lto-совместимая RT нам в ближайшем будущем не грозит, так что можно выдохнуть.
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 13:20 364
Это я все не про lto (прелести которого я постиг ещё на pathscale), а про то, что lto не заменяет удаление неиспользуемых функций на стадии линковки, или делает это вяло.
На счет lto-фикации стандартных библиотек: я я перебилдил FLTK. fluid был 1.4М, стал 1.2М. Это библиотека классов, врядли стоит ждать большего от RT.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.12.2013, 14:12 365
Думаю, ждать как раз можно. Одно дело - библиотека, в которой должно всё присутствовать, потому что заранее неизвестно, что именно пригодится. Другое дело - конкретное приложение, из которого можно выкинуть всё неиспользуемое, пройдясь по графу достижимости и размахивая во все стороны топором -fwhole-program. Подходящим сравнением здесь было бы внедрение FLTK в приложение в виде исходных кодов с ключами -flto и -fwhole-program против построения со статической библиотекой.
0
Evg
Эксперт CАвтор FAQ
21192 / 8208 / 633
Регистрация: 30.03.2009
Сообщений: 22,521
Записей в блоге: 30
30.12.2013, 14:16 366
Цитата Сообщение от Nick Alte Посмотреть сообщение
и размахивая во все стороны топором -fwhole-program
Топор обязателен, возможно, что nenin его не подавал. Без топора компилятор не сможет быть на 100% уверенным, что к функции нет какого-нибудь хитрого доступа типа через dlopen/dlsym или из ассемблерной части программы (которую компилятор не видит)
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 14:52 367
Так fluid и fltk, грубо выражаясь, одним мейком деланы. -fwhole-program на fluid я сейчас накачу.

Добавлено через 30 минут
Разницы от -fwhole-program нету.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.12.2013, 16:13 368
Не могу прокомментировать, потому что с FLTK дела не имел и структуру сборки не представляю. Даже одним мейком можно сначала собирать статическую библиотеку, которая потом подключается к утилите или утилитам, как это часто делается.
Лично мне доводилось наблюдать разительное похудение небольшого проекта от -fwhole-program.
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 16:19 369
Если всё делается на make с одними ключами- должно работать. Если статические библиотеки даже с согласованными ключами не обрабатываются нормально, то это несерьёзно.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.12.2013, 16:23 370
Статические библиотеки и не могут обрабатываться. flto предполагает другой, более "недоваренный" формат объектных файлов и выполнение оптимизаций уже на стадии связывания (по каковой причине и рекомендуется в этом режиме делать объектные файлы без оптимизаций, а флаги оптимизации передавать уже на стадии линковки). Обычные объектные файлы и статические библиотеки обрабатываются в обычном режиме.
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 16:29 371
А в библиотеку их всунуть нельзя?

Добавлено через 53 секунды
К слову, если разным файлам нужны разные флаги, как их скормить на линковке?
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.12.2013, 16:35 372
Насколько я понимаю, текущий формат библиотек, зародившийся задолго до появления LTO в нынешнем виде, этого не предусматривает. Сама идея lto и особенно whole-program подразумевает, что всё слепляется в однородный ком, который обрабатывается как единое целое. Если кому-то нужны разные настройки оптимизации для разных файлов, линковать придётся в обычном режиме.
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 16:52 373
Ну, тогда толк с того может быть только на маленьких проектах.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.12.2013, 17:11 374
В текущем состоянии - да, так оно и есть. Разве что всё же специально заморачиваться со сборкой крупных библиотек из исходников. А когда настанет светлое будущее, в котором будет внедрена поддержка LTO в статических библиотеках, включая стандартные RT, тогда-то и потекут молочные реки в кисельных берегах...
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 23:27 375
Похоже, что должно таки работать: http://gcc.gnu.org/ml/gcc-help... 00129.html
К слову, .a с lto опухают почти в 10 раз.
0
Эксперт С++
1667 / 1039 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
31.12.2013, 10:37 376
Это интересно. Надо бы поглубже покопаться, а вдруг окончательная победа сил добра над силами разума ближе, чем кажется?
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
31.12.2013, 16:12 377
Взял я амальгаму SQLite, сделал из неё .а и попробовал: вставил sqlite3_open_v2 и sqlite3_errmsg в хелуворда. Эффект такой:
хелуворд- 33.00 KB
хелуворд с lto -33.00 KB
обычный код - 724.00 KB
lto + lto-библиотека - 558.00 KB
lto с обычной библиотекой 724.50 KB

Добавлено через 23 минуты
и самое странно:
обычный билд с lto-библиотекой - 581.50 KB

Добавлено через 13 минут
теперь всё исправилось:
обычный код - 581.50 KB
Я сначала пустил библитеку без lto сбилженную под c2d, а lto- под 686.

Добавлено через 1 минуту
В целом lto на библиотеках, похоже, работает, но лишний код урезает слабо.
0
1174 / 887 / 94
Регистрация: 03.08.2011
Сообщений: 2,457
17.01.2014, 20:58 378
А MSys больше не обновляется? Или я просто что то упустил?
0
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
17.01.2014, 21:52 379
Объявляли же, 32 и 64
0
1174 / 887 / 94
Регистрация: 03.08.2011
Сообщений: 2,457
17.01.2014, 22:39 380
А теперь прочитайте еще раз мой вопрос.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2014, 22:39

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сборки MinGW(win32/win64) от niXman C++1x
никто не знает как MinGW(win32/win64) от niXman подключить к codeblocks? и с какими параметрами...

Mingw-w64 MinGW TDM-GCC
Всем привет. Хочу понять, существует ли принципиальная разница между Mingw-w64, MinGW и...

Компиляция для win32 bit на win64
День добрый. Подскажите как в Visual Studio (или еще где) на 64 битной машине (win 8 )...

Linker Ошибки [gcc\MingW]
Есть код : #define _WIN32_WINNT 0x0500 //Необходимо для определения функции GetConsoleWindow() в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
380
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.