tag:blogger.com,1999:blog-9098961111008274301.post7944565407263293272..comments2023-05-14T16:43:09.269+04:00Comments on "Кодовый" беспредел: Сборка Qt из исходников компилятором MinGWВитhttp://www.blogger.com/profile/15016975536633739620noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-9098961111008274301.post-82803851866413227102014-04-03T14:10:52.441+04:002014-04-03T14:10:52.441+04:00Доброго времени суток!
С похожей ошибкой (отсутст...Доброго времени суток!<br /><br />С похожей ошибкой (отсутствующий файл) я сталкивался в ситуации, когда "строка компиляции" превышала максимальный лимит (порядка 8 тыс. символов в Windows) - командный процессор тупо отрезал все что больше. Может это происходит и в вашем случае? <br /><br />А с распараллеливанием сборки я не спорю:)) <br />Правда на практике иного возникают определенные нюансы, как то, прерывание компиляции при использовании "чистого" MinGW. Все же это из разряда "системной" оптимизации сборки приложений на многоядерных/многопроцессорных системах и об этом следует говорить отдельно, ИМХО :))))Витhttps://www.blogger.com/profile/15016975536633739620noreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-51011032542727424082014-04-03T10:43:50.481+04:002014-04-03T10:43:50.481+04:00При компиляции наткнулся на ошибку:
g++ -c -pipe -...При компиляции наткнулся на ошибку:<br />g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_C<br />AST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_<br />QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMES<br />PACE -DQT_NO_DEPRECATED -DQT_NODLL -I"..\..\..\include" -I"..\..\..\include\QtCore" -I"..\..\..\include\QtXml" -I"..<br />\..\3rdparty\zlib" -I"..\..\..\mkspecs\win32-g++" -o tmp\obj\release_shared\qisciicodec.o ..\..\corelib\codecs\qisci<br />icodec.cpp<br />g++.exe: error: ....corelibcodecsqisciicodec.cpp: No such file or directory<br />g++.exe: fatal error: no input files<br /><br />Вылечил правкой mkspecs\win32-g++\qmake.conf<br />....<br />#!isEmpty(QMAKE_SH) {<br /> MINGW_IN_SHELL = 1<br /> QMAKE_DIR_SEP = /<br /> QMAKE_QMAKE ~= s,\\\\,/,<br /> QMAKE_COPY = cp<br /> QMAKE_COPY_DIR = cp -r<br /> QMAKE_MOVE = mv<br /> QMAKE_DEL_FILE = rm<br /> QMAKE_MKDIR = mkdir -p<br /> QMAKE_DEL_DIR = rmdir<br /> QMAKE_CHK_DIR_EXISTS = test -d<br />#} else {<br /># QMAKE_COPY = copy /y<br /># QMAKE_COPY_DIR = xcopy /s /q /y /i<br /># QMAKE_MOVE = move<br /># QMAKE_DEL_FILE = del<br /># QMAKE_MKDIR = mkdir<br /># QMAKE_DEL_DIR = rmdir<br /># QMAKE_CHK_DIR_EXISTS = if not exist<br />#}<br />...<br />Т.е. закомментировал кусок.<br /><br />Для ускорения сборки можно указывать у make опцию -j например mingw32-make -j4 будет молотить в 4 потока. И соберет все почти в 4 раза быстрее.<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-7118941277499909612014-03-25T09:58:22.854+04:002014-03-25T09:58:22.854+04:00Спасибо за гайд, собралось без проблемСпасибо за гайд, собралось без проблемAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-60670376402697386302012-11-17T10:30:27.769+04:002012-11-17T10:30:27.769+04:00Ну для начала ... официальный проект MinGW не выпу...Ну для начала ... официальный проект <i>MinGW</i> не выпускает компилятор x64, а только x86 - поэтому он Вам и не предлагает установить то, чего нет ;-). Все версии <i>MinGW</i> <b>x64</b>, что есть в сети - это <b>сторонние проекты</b>.<br /><br />Далее - MinGW можно и просто скопировать, главное потом указать в переменной PATH где он находится (к слову, ранее его так и устанавливали - скачивали архивы и прописывали путь в PATH). Правда, если там есть и пакет <i>MSYS</i>, то придется корректировать и файл <i>fstab</i>.<br /><br />Про сборку <i>Qt x64</i> под <i>Windows</i> ... была мысль попробовать собрать, но там очень много заморочек. На текущий момент ни один известный мне пакет <i>MinGW x64</i> этого сделать не может. Нужно "допиливать" сначала сам <i>toolchain</i>, а уж потом собирать <i>Qt</i>. Если Вы все же заинтересованы именно в 64-битной версии <i>Qt</i>, советую ознакомиться вот с <a href="http://qt-project.org/wiki/MinGW-64-bit" rel="nofollow">ЭТИМ</a> материалом :-).<br />Витhttps://www.blogger.com/profile/15016975536633739620noreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-49697307291700340492012-11-16T11:24:17.035+04:002012-11-16T11:24:17.035+04:00Не удалось выполнить 4 шаг. Сообщения о то, что мо...Не удалось выполнить 4 шаг. Сообщения о то, что можно теперь запустить make не появляется. В принципе при запуске configure.exe в консоль выдается лишь описание его ключей и ничего не происходит.<br />Я пытался собрать под mingw64 и, если это важно, он у меня не установлен, а скопирован, потому как автоматический установщик не предлагает мне 64-х битную версию.<br />Может посоветуете мне, что-нибудь?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-77090818398013098822012-11-14T22:07:25.158+04:002012-11-14T22:07:25.158+04:00И Вам пожалуйста :-)
Это справедливо не только дл...И Вам пожалуйста :-)<br /><br />Это справедливо не только для VS, но и для любого другого компилятора, который создает данные переменные. Например, в свое время, Open Watcom потрепал мне нервы задав их :-). <br />Возможно и стоило затронуть этот вопрос в заметке... но теперь он уже раскрыт в комментариях благодаря Вам, так что страждущие, полагаю, найдут ответ на свой вопрос ;-). Витhttps://www.blogger.com/profile/15016975536633739620noreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-91338693330793148642012-11-13T23:27:54.106+04:002012-11-13T23:27:54.106+04:00Спасибо за краткость.
Вот только одну загвоздку н...Спасибо за краткость. <br />Вот только одну загвоздку нужно тоже учесть в статье. Если установлена VS, то переменные среды %include% и %lib% смотрят на Microsoft. В свою очередь, сonfigure смотрит на эти переменные и добавляет их в Makefile проектов. Это мешает собирать под MINGW.Константинnoreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-17778318511271247102012-08-22T23:19:31.386+04:002012-08-22T23:19:31.386+04:00Всегда пожалуйста :-)
про сборку документации для...Всегда пожалуйста :-)<br /><br /><i><b>про сборку документации для QT</b></i><br />Никогда даже не задавался таким вопросом, поэтому рассказать что-то не смогу. А зачем ее вообще собирать, если она идет сразу в удобном виде в папке <i>doc</i>? По крайней мере, Qt Creator нормально с ней работает.<br /><br /><i><b>про очистку каталога QT после сборки от лишних файлов</b></i><br />А вот это можно сделать по-сути только вручную :-) - поудалять бинарные файлы <i>*.o</i>. Хотя они могут серьезно сократить время повторной сборки Qt (ну если потребуется). <i>(MinGW32-)Make install</i>, который в Linux позволяет установить в нужную директорию программу, на Windows не работает, поэтому и <i>mingw32-make clean</i> тоже стоит использовать с осторожностью - он оставляет только версии <i>*.DLL</i>. В тоже время некоторые пишут, что линкер прекрасно и с <i>dll</i> связывает приложения, не требуя библиотек *.a (справедливо, конечно, для shared версии Qt). Ради эксперимента проверял - <i>Hello, World!</i> работал, но это, конечно, не показатель :-).<br /><br /><i><b>про опцию отключения WebKit(время компиляции)</b></i><br />Для этого конфигуратору нужно передать опцию <i>-no-webkit</i><br /><br /><i><b>про опцию каталога установки и mingw32-make install</b></i><br />См. выше п.2.<br />Витhttps://www.blogger.com/profile/15016975536633739620noreply@blogger.comtag:blogger.com,1999:blog-9098961111008274301.post-85989010894914454282012-08-22T16:47:25.234+04:002012-08-22T16:47:25.234+04:00Спасибо за ликбез.
Хотелось бы ещё почитать:
про...Спасибо за ликбез.<br /><br />Хотелось бы ещё почитать:<br /> про сборку документации для QT<br /> про очистку каталога QT после сборки от лишних файлов<br /> про опцию отключения WebKit(время компиляции)<br /> про опцию каталога установки и mingw32-make installTopSergeyhttps://www.blogger.com/profile/03331110249263413032noreply@blogger.com