Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/1440: Рейтинг темы: голосов - 1440, средняя оценка - 4.95
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
1

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

30.07.2011, 22:48. Показов 271137. Ответов 459

Author24 — интернет-сервис помощи студентам
с этого момента, буду производить тестовые/пререлизные/релизные сборки 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)
Здравствуйте. Возникла задача упаковать различного рода файлы в программу. Пробовал создавать...

459
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
20.09.2012, 23:29 101
Author24 — интернет-сервис помощи студентам
niXman, она объявлена в winuser.h (проверки на версию ОС нет), и в libuser32.a так же присутствует. У меня соображений никаких.

Добавлено через 2 минуты
Цитата Сообщение от niXman Посмотреть сообщение
а в .def файл забыли =)
так там же .def файлов нет вообще. Или они только в исходниках?
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 23:46  [ТС] 102
Цитата Сообщение от lazybiz Посмотреть сообщение
в libuser32.a так же присутствует
уже вижу. попробую разобраться...

Цитата Сообщение от lazybiz Посмотреть сообщение
они только в исходниках?
да.

Добавлено через 4 минуты
так, понятно.

в общем, эта функция присутствует в CRT для x86_64, и успешно линкуется.
а в CRT для i686 ее просто недобавили.

ты проверял 64 битными сборками?

Добавлено через 7 минут
исправил.
отправлю патч разрабам, но пересобирать пока не буду.
сам разберешься как библиотеку импорта сгенерить из .def файла?

Цитата Сообщение от niXman Посмотреть сообщение
ты проверял 64 битными сборками?
пинг?
1
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
20.09.2012, 23:53 103
Я использую GCC x86_64, но с флагами "-m32 -march=i686". В этом случае проблема актуальна. А вот без них (только что проверил) у меня появились кое-какие другие проблемы. В течение 15 минут попробую описать...
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.09.2012, 23:57  [ТС] 104
Цитата Сообщение от lazybiz Посмотреть сообщение
В течение 15 минут попробую описать...
давай. любопытно...
ссылку на архив не забудь. или имя файла архива.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
21.09.2012, 00:05 105
Может не по теме.. но все же.
В x86_64 без "-m32 -march=i686" появились
ошибки
layer.cpp:25:62: error: cast from 'HINSTANCE' to 'uint32_t {aka unsigned int}' loses precision [-fpermissive]
layer.cpp: In constructor 'biz::layer::layer(int32_t, int32_t, uint32_t, uint32_t, uint32_t)':
layer.cpp:62:24: error: 'GWL_USERDATA' was not declared in this scope
layer.cpp:62:44: error: cast from 'biz::layer*' to 'LONG {aka long int}' loses precision [-fpermissive]
Преобразование явное. Стандарт что там, что там c++11, но при "-m32 -march=i686" нет ни то что ошибок, даже предупреждениями не пахнет.

Цитата Сообщение от niXman Посмотреть сообщение
Сам разберешься как библиотеку импорта сгенерить из .def файла?
Разберусь, но с твоего волшебного пинка процесс пойдет значительно быстрее.

Добавлено через 36 секунд
Цитата Сообщение от niXman Посмотреть сообщение
ссылку на архив не забудь. или имя файла архива.
Ты об этом: x86_64-mingw-w64-gcc-4.7.2-release-c,c++,fortran-sjlj-rev0.7z ?
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
21.09.2012, 00:14  [ТС] 106
Цитата Сообщение от lazybiz Посмотреть сообщение
error: cast from 'HINSTANCE' to 'uint32_t
тут все стандартно.
если мне не изменяет память, HINSTANCE это указатель. таким образом, для 32ух битного компилятора тут все валидно. но а вот для 64ех битного - нет, потому что указатель имеет размер 64бита. таким образом ты теряешь(можешь потерять) часть значения, о чем тебя компилятор честно предупреждает: loses precision

Добавлено через 1 минуту
Цитата Сообщение от lazybiz Посмотреть сообщение
error: cast from 'HINSTANCE' to 'uint32_t
тут все стандартно.
если мне не изменяет память, HINSTANCE это указатель. таким образом, для 32ух битного компилятора тут все валидно. но а вот для 64ех битного - нет, потому что указатель имеет размер 64бита. таким образом ты теряешь(можешь потерять) часть значения, о чем тебя компилятор честно предупреждает: loses precision

Добавлено через 1 минуту
Цитата Сообщение от lazybiz Посмотреть сообщение
Ты об этом: x86_64-mingw-w64-gcc-4.7.2-release-c,c++,fortran-sjlj-rev0.7z ?
ага.

зы
патч выслал разрабам. приняли. больше этот баг не повторится.
1
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
21.09.2012, 00:47 107
niXman, спасибо.
Возможно не по теме, но мне не дает покоя этот
вопрос

Не по теме:

Тут то что может быть:

layer.cpp:62:24: error: 'GWL_USERDATA' was not declared in this scope

В связи с этим, проверить код под x86_64 пока не могу.
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
21.09.2012, 01:01  [ТС] 108
Цитата Сообщение от lazybiz Посмотреть сообщение
error: 'GWL_USERDATA' was not declared in this scope
сделай поиск по хидерам.
или, возможно, это последствия первой ошибки с которой столкнулся компилятор. попробуй исправь первую, и повтори сборку.

Добавлено через 9 минут
и кстати, у mingw-builds есть список рассылки. там можно общаться на русском
1
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
21.09.2012, 01:32 109
Нашел ошибку. SetWindowLong считается deprecated. Следует использовать SetWindowLongPtr.
В общем ошибка не в MinGW. Спасибо тебе за ответы!

Добавлено через 1 минуту
Цитата Сообщение от niXman Посмотреть сообщение
и кстати, у mingw-builds есть список рассылки. там можно общаться на русском
Ха) Спасибо, не знал. Возьму на заметку
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 5
28.09.2012, 15:09 110
Скачал сборку i686-mingw-w64-gcc-4.7.2-release-c,c++,fortran-sjlj-rev1.7z - в ней, по моему, не хватает следующих файлов: include\GL\glut.h (хотя есть libglut.a и libglut32.a) не хватает libgl.a (знаю что есть libopengl32, но коли уж есть libglut.a то было бы логично) и аналогично libglu.a. Некоторые библиотеки типа ShivaVG хотят их.

И еще. есть простой пример с библиотекой libjpeg:
#include <stdio.h>
#include <stdlib.h>
#include <jpeglib.h>
int main(void) {jpeg_create_decompress(0); return 0;}

компилирую его так:
gcc -o conftest.exe -lm -ljpeg conftest.c
вырает ошибку:
C:\Temp\cckshgsp.o:conftest.c.text+0x26): undefined reference to `jpeg_CreateDecompress'
collect2.exe: error: ld returned 1 exit status

Компилирую так: gcc -o conftest.exe -lm conftest.c -ljpeg
Ошибка не выдается. Вопрос - порядок следования параметров важен? или это ошибка компилятора?
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
28.09.2012, 15:12  [ТС] 111
Цитата Сообщение от Sania Посмотреть сообщение
в ней, по моему, не хватает следующих файлов: include\GL\glut.h (хотя есть libglut.a и libglut32.a) не хватает libgl.a (знаю что есть libopengl32, но коли уж есть libglut.a то было бы логично) и аналогично libglu.a.
я не в курсе, но разве эти библиотеки должны входить в комплект поставки mingw?
есть какой-то пруф, говорящий об этом?

Цитата Сообщение от Sania Посмотреть сообщение
порядок следования параметров важен?
обычно нет. но бывают и случаи когда важен.
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 5
28.09.2012, 15:23 112
Цитата Сообщение от niXman Посмотреть сообщение
я не в курсе, но разве эти библиотеки должны входить в комплект поставки mingw?
есть какой-то пруф, говорящий об этом?
этого я не знаю, но знаю точно что GL\glut.h и libglut.a - это два сапога пара

Цитата Сообщение от niXman Посмотреть сообщение
обычно нет. но бывают и случаи когда важен.
А как знающий GCC, можете подсказать, данный конкретный пример - параметр с именем компилируемого файла (conftest.c) и используемой в нем функции библиотеки (libjpeg.a: -ljpeg) - тут важно что библиотека должна быть указана после исходника или это всё же некая ошибка? В яндексе на эту тему не нашел, а ранее е приходилось задумываться.
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
28.09.2012, 15:33  [ТС] 113
Цитата Сообщение от Sania Посмотреть сообщение
GL\glut.h и libglut.h
я не думаю что это ошибка. так же, я не думаю что разрабы забыли про эти файлы. давно бы уже кто-то напомнил.
или в предыдущих сборках эти файлы присутствовали?

по остальному - погугли словосочетание "mingw libraries link order"
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
28.09.2012, 18:12 114
Sania, не входит глут в поставку гцц.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
28.09.2012, 18:40 115
Sania, можно установить вручную: http://files.transmissionzero.... -MinGW.zip (32-битная версия)
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
28.09.2012, 20:23 116
Цитата Сообщение от niXman Посмотреть сообщение
но разве эти библиотеки должны входить в комплект поставки mingw?
glut не должен, но бинарник почему-то есть, а хедера к нему нет, парадокс
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 5
28.09.2012, 22:15 117
То то и оно, логично что глут не должен входить в поставку компилятора, как не входит в составы других компиляторов, но вот библиотека почему то присутствует, поэтому и возникли сомнения.
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
28.09.2012, 22:23  [ТС] 118
lazybiz, Sania, как точно зовется либа?

Добавлено через 14 секунд
т.е. файл библиотеки о котором вы говорите.
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 5
28.09.2012, 22:32 119
Цитата Сообщение от niXman Посмотреть сообщение
lazybiz, Sania, как точно зовется либа?

Добавлено через 14 секунд
т.е. файл библиотеки о котором вы говорите.
http://www.opengl.org/resources/libraries/glut/

от нее соответственно в сборке компилятора есть только часть без инклудов:
mingw\i686-w64-mingw32\lib\libglut.a
mingw\i686-w64-mingw32\lib\libglut32.a
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
28.09.2012, 22:34  [ТС] 120
ок. попробую понять, импорт каких функций они предоставляют.
0
28.09.2012, 22:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2012, 22:34
Помогаю со студенческими работами здесь

Сборки 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() в...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru