LINUX.ORG.RU

Не получается откомпилить Qt5

 ,


0

1

Всем привет, собсно вот подробности сабжа:

Делаю сборку Qt из исходников вот по этому туториалу http://wiki.qt.io/Building_Qt_5_from_Git/ru до этого были ещё попытки... но оставим их за кадром ))

Короче, Конфиг проходит нормально, но make спотыкается, дойдя до модуля qtsvg

make[3]: вход в каталог «/home/madkid/qt5/qtsvg/src/svg»
g++ -pipe -g -Og -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -Wdate-time -Wshift-overflow=2 -Wduplicated-cond -Werror -Wno-error=cpp -Wno-error=deprecated-declarations -Wno-error=strict-overflow -D_REENTRANT -fPIC -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_SVG_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_ZLIB_LIB -I. -I/home/madkid/qt5/qtbase/include -I/home/madkid/qt5/qtbase/include/QtSvg -I/home/madkid/qt5/qtbase/include/QtSvg/5.10.0 -I/home/madkid/qt5/qtbase/include/QtSvg/5.10.0/QtSvg -I/home/madkid/qt5/qtbase/include/QtWidgets/5.10.0 -I/home/madkid/qt5/qtbase/include/QtWidgets/5.10.0/QtWidgets -I/home/madkid/qt5/qtbase/include/QtGui/5.10.0 -I/home/madkid/qt5/qtbase/include/QtGui/5.10.0/QtGui -I/home/madkid/qt5/qtbase/include/QtCore/5.10.0 -I/home/madkid/qt5/qtbase/include/QtCore/5.10.0/QtCore -I/home/madkid/qt5/qtbase/include/QtWidgets -I/home/madkid/qt5/qtbase/include/QtGui -I/home/madkid/qt5/qtbase/include/QtCore -I/home/madkid/qt5/qtbase/include/QtZlib -I/home/madkid/qt5/qtbase/include/QtZlib/5.10.0 -I/home/madkid/qt5/qtbase/include/QtZlib/5.10.0/QtZlib -I.moc -I/home/madkid/qt5/qtbase/mkspecs/linux-g++ -x c++-header -c /home/madkid/qt5/qtbase/include/QtSvg/QtSvgDepends -o .pch/Qt5Svg.gch/c++
In file included from /home/madkid/qt5/qtbase/include/QtWidgets/qwizard.h:1:0,
                 from /home/madkid/qt5/qtbase/include/QtWidgets/QtWidgets:315,
                 from /home/madkid/qt5/qtbase/include/QtSvg/QtSvgDepends:5:
/home/madkid/qt5/qtbase/include/QtWidgets/../../src/widgets/dialogs/qwizard.h:258:2: fatal error: can’t write PCH file: На устройстве не осталось свободного места
 };
  ^
compilation terminated

Про какое устройство говорится в сиём манускрипте, и что за pch - мне неведомо.

Устройств у меня 1 штука - виртуальный скази, но места на нём ещё есть...

Творищи, растолкуйте: что происходит, кто виноват и как его наказать?

UPD А вот я хитрость провернул: сконфигил с опцией -skip qtsvg опция сработала, make в своей работе зашёл дальше. Но та же фигня всё равно возникла на другом этапе:

In file included from /home/madkid/qt5/qtbase/include/QtNetwork/qudpsocket.h:1:0,
                 from /home/madkid/qt5/qtbase/include/QtNetwork/QtNetwork:48,
                 from /home/madkid/qt5/qtbase/include/QtQml/QtQmlDepends:4:
/home/madkid/qt5/qtbase/include/QtNetwork/../../src/network/socket/qudpsocket.h:88:2: fatal error: can’t write PCH file: На устройстве не осталось свободного места
 };
  ^
compilation terminated.

То есть это у меня и правда место заканчивается??



Последнее исправление: MadKid (всего исправлений: 2)

Попробуй конфигурировать с опцией -no-pch

EXL ★★★★★
()

Творищи, растолкуйте: что происходит, кто виноват и как его наказать?

это да, есть за ним такой грешок. Тебе не хватает памяти(ну не буквально, просто долго разжёвывать), в общем нужен подключенный swap и делать(собирать) лучше в консоли без иксов и прочей лабудистики, вебинджайн на последнем излёте отъедает 100% процессора и всю доступную память до которой сможет дотянуться, поэтому, чтобы не рисковать временем,( ибо проявляется это в самом конце, после 2-3х часов конпеляния) стоит дать ему нужный ресурс и не трогать от греха подальше.

Gramozeka ★★
()
Ответ на: комментарий от Gramozeka

похоже, что так и есть.

ок, лабудистику отключим. места побольше дадим - и диск расширим, и ram доставим )) посмотрим тогда, как пойдёт

MadKid
() автор топика

Сделай sudo dmesg

anonymous
()
Ответ на: комментарий от former_anonymous

А вот про линкер поподробней пожалуйста!

Я как раз добрался до того места, где он вылетает с ошибкой:

g++ -Wl,--no-undefined -Wl,--version-script,QtGui.version -fuse-ld=gold -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,/home/madkid/qt5/qtbase/src/gui/QtGui.dynlist -Wl,-soname,libQt5Gui.so.5 -o libQt5Gui.so.5.10.0 .obj/qimage_ssse3.o .obj/qdrawhelper_ssse3.o .obj/qimage_sse4.o .obj/qdrawhelper_sse4.o .obj/qimagescale_sse4.o .obj/qimage_avx2.o .obj/qdrawhelper_avx2.o .obj/qaccessible.o .obj/qaccessiblecache.o .obj/qaccessibleobject.o .obj/qaccessibleplugin.o .obj/qplatformaccessibility.o .obj/qaccessiblebridge.o .obj/qgenericpluginfactory.o .obj/qgenericplugin.o .obj/qwindowsysteminterface.o .obj/qplatforminputcontextfactory.o .obj/qplatforminputcontextplugin.o .obj/qplatforminputcontext.o .obj/qplatformintegration.o .obj/qplatformdrag.o .obj/qplatformscreen.o .obj/qplatformintegrationfactory.o .obj/qplatformintegrationplugin.o .obj/qplatformtheme.o .obj/qplatformthemefactory.o .obj/qplatformthemeplugin.o .obj/qplatformwindow.o .obj/qplatformoffscreensurface.o .obj/qplatformcursor.o .obj/qplatformclipboard.o .obj/qplatformnativeinterface.o .obj/qsessionmanager.o .obj/qshapedpixmapdndwindow.o .obj/qsimpledrag.o .obj/qsurfaceformat.o .obj/qguiapplication.o .obj/qwindow.o .obj/qoffscreensurface.o .obj/qplatformsurface.o .obj/qsurface.o .obj/qclipboard.o .obj/qcursor.o .obj/qdrag.o .obj/qdnd.o .obj/qevent.o .obj/qinputmethod.o .obj/qkeysequence.o .obj/qkeymapper.o .obj/qpalette.o .obj/qguivariant.o .obj/qscreen.o .obj/qshortcutmap.o .obj/qstylehints.o .obj/qtouchdevice.o .obj/qplatformsharedgraphicscache.o .obj/qplatformdialoghelper.o .obj/qplatformservices.o .obj/qplatformsystemtrayicon.o .obj/qplatformsessionmanager.o .obj/qplatformmenu.o .obj/qpixelformat.o .obj/qpaintdevicewindow.o .obj/qrasterwindow.o .obj/qplatformgraphicsbuffer.o .obj/qplatformgraphicsbufferhelper.o .obj/qinputdevicemanager.o .obj/qhighdpiscaling.o .obj/qplatformopenglcontext.o .obj/qopenglcontext.o .obj/qopenglwindow.o .obj/qbitmap.o .obj/qimage.o .obj/qimage_conversions.o .obj/qimageiohandler.o .obj/qimagereader.o .obj/qimagewriter.o .obj/qpaintengine_pic.o .obj/qpicture.o .obj/qpictureformatplugin.o .obj/qpixmap.o .obj/qpixmapcache.o .obj/qplatformpixmap.o .obj/qpixmap_raster.o .obj/qpixmap_blitter.o .obj/qimagepixmapcleanuphooks.o .obj/qicon.o .obj/qiconloader.o .obj/qiconengine.o .obj/qiconengineplugin.o .obj/qmovie.o .obj/qbmphandler.o .obj/qppmhandler.o .obj/qxbmhandler.o .obj/qxpmhandler.o .obj/qpnghandler.o .obj/qfont.o .obj/qfontengine.o .obj/qfontengineglyphcache.o .obj/qfontsubset.o .obj/qfontmetrics.o .obj/qfontdatabase.o .obj/qtextengine.o .obj/qtextlayout.o .obj/qtextformat.o .obj/qtextobject.o .obj/qtextoption.o .obj/qfragmentmap.o .obj/qtextdocument.o .obj/qtextdocument_p.o .obj/qtexthtmlparser.o .obj/qabstracttextdocumentlayout.o .obj/qtextdocumentlayout.o .obj/qtextcursor.o .obj/qtextdocumentfragment.o .obj/qtextimagehandler.o .obj/qtexttable.o .obj/qtextlist.o .obj/qtextdocumentwriter.o .obj/qsyntaxhighlighter.o .obj/qstatictext.o .obj/qrawfont.o .obj/qglyphrun.o .obj/qdistancefield.o .obj/qinputcontrol.o .obj/qfontengine_qpf2.o .obj/qplatformfontdatabase.o .obj/qharfbuzzng.o .obj/qtextodfwriter.o .obj/qzip.o .obj/qcssparser.o .obj/qbackingstore.o .obj/qbezier.o .obj/qblendfunctions.o .obj/qblittable.o .obj/qbrush.o .obj/qcolor.o .obj/qcolorprofile.o .obj/qcompositionfunctions.o .obj/qcosmeticstroker.o .obj/qdrawhelper.o .obj/qemulationpaintengine.o .obj/qgrayraster.o .obj/qimagescale.o .obj/qmatrix.o .obj/qmemrotate.o .obj/qoutlinemapper.o .obj/qpagedpaintdevice.o .obj/qpagelayout.o .obj/qpagesize.o .obj/qpaintdevice.o .obj/qpaintengine.o .obj/qpaintengineex.o .obj/qpaintengine_blitter.o .obj/qpaintengine_raster.o .obj/qpainter.o .obj/qpainterpath.o .obj/qpathclipper.o .obj/qpdf.o .obj/qpdfwriter.o .obj/qpen.o .obj/qpolygon.o .obj/qrasterizer.o .obj/qregion.o .obj/qstroker.o .obj/qtextureglyphcache.o .obj/qtransform.o .obj/qtriangulatingstroker.o .obj/qtriangulator.o .obj/qplatformbackingstore.o .obj/qpathsimplifier.o .obj/qcssutil.o .obj/qdesktopservices.o .obj/qvalidator.o .obj/qgridlayoutengine.o .obj/qabstractlayoutstyleinfo.o .obj/qlayoutpolicy.o .obj/qshaderformat.o .obj/qshadergenerator.o .obj/qshadergraph.o .obj/qshadergraphloader.o .obj/qshaderlanguage.o .obj/qshadernode.o .obj/qshadernodeport.o .obj/qshadernodesloader.o .obj/qgenericmatrix.o .obj/qmatrix4x4.o .obj/qquaternion.o .obj/qvector2d.o .obj/qvector3d.o .obj/qvector4d.o .obj/qopengl.o .obj/qopenglfunctions.o .obj/qopenglframebufferobject.o .obj/qopenglpaintdevice.o .obj/qopenglbuffer.o .obj/qopenglshaderprogram.o .obj/qopenglgradientcache.o .obj/qopengltexturecache.o .obj/qopenglengineshadermanager.o .obj/qopengl2pexvertexarray.o .obj/qopenglpaintengine.o .obj/qopenglcustomshaderstage.o .obj/qopengltextureglyphcache.o .obj/qopenglversionfunctions.o .obj/qopenglversionfunctionsfactory.o .obj/qopenglvertexarrayobject.o .obj/qopengldebug.o .obj/qopengltextureblitter.o .obj/qopengltexture.o .obj/qopengltexturehelper.o .obj/qopenglpixeltransferoptions.o .obj/qopenglprogrambinarycache.o .obj/qopenglfunctions_1_0.o .obj/qopenglfunctions_1_1.o .obj/qopenglfunctions_1_2.o .obj/qopenglfunctions_1_3.o .obj/qopenglfunctions_1_4.o .obj/qopenglfunctions_1_5.o .obj/qopenglfunctions_2_0.o .obj/qopenglfunctions_2_1.o .obj/qopenglfunctions_3_0.o .obj/qopenglfunctions_3_1.o .obj/qopenglfunctions_3_2_core.o .obj/qopenglfunctions_3_3_core.o .obj/qopenglfunctions_4_0_core.o .obj/qopenglfunctions_4_1_core.o .obj/qopenglfunctions_4_2_core.o .obj/qopenglfunctions_4_3_core.o .obj/qopenglfunctions_4_4_core.o .obj/qopenglfunctions_4_5_core.o .obj/qopenglfunctions_3_2_compatibility.o .obj/qopenglfunctions_3_3_compatibility.o .obj/qopenglfunctions_4_0_compatibility.o .obj/qopenglfunctions_4_1_compatibility.o .obj/qopenglfunctions_4_2_compatibility.o .obj/qopenglfunctions_4_3_compatibility.o .obj/qopenglfunctions_4_4_compatibility.o .obj/qopenglfunctions_4_5_compatibility.o .obj/qopengltimerquery.o .obj/qguivariantanimation.o .obj/qstandarditemmodel.o .obj/qimage_compat.o .obj/qimage_sse2.o .obj/qdrawhelper_sse2.o .obj/qrc_qpdf.o .obj/moc_qaccessible.o .obj/moc_qaccessiblecache_p.o .obj/moc_qaccessibleplugin.o .obj/moc_qaccessiblebridge.o .obj/moc_qgenericplugin.o .obj/moc_qplatforminputcontext.o .obj/moc_qplatforminputcontextplugin_p.o .obj/moc_qplatformintegrationplugin.o .obj/moc_qplatformthemeplugin.o .obj/moc_qplatformnativeinterface.o .obj/moc_qplatformmenu.o .obj/moc_qshapedpixmapdndwindow_p.o .obj/moc_qsurfaceformat.o .obj/moc_qoffscreensurface.o .obj/moc_qclipboard.o .obj/moc_qdrag.o .obj/moc_qdnd_p.o .obj/moc_qevent.o .obj/moc_qkeysequence.o .obj/moc_qkeymapper_p.o .obj/moc_qpalette.o .obj/moc_qsessionmanager.o .obj/moc_qscreen.o .obj/moc_qstylehints.o .obj/moc_qtouchdevice.o .obj/moc_qplatformsharedgraphicscache.o .obj/moc_qplatformdialoghelper.o .obj/moc_qpaintdevicewindow.o .obj/moc_qrasterwindow.o .obj/moc_qplatformgraphicsbuffer.o .obj/moc_qinputdevicemanager_p.o .obj/moc_qopenglwindow.o .obj/moc_qimageiohandler.o .obj/moc_qpictureformatplugin.o .obj/moc_qiconengineplugin.o .obj/moc_qfont.o .obj/moc_qfontdatabase.o .obj/moc_qtextformat.o .obj/moc_qtextobject.o .obj/moc_qtextdocument.o .obj/moc_qtextimagehandler_p.o .obj/moc_qtexttable.o .obj/moc_qtextlist.o .obj/moc_qinputcontrol_p.o .obj/moc_qbrush.o .obj/moc_qpainter.o .obj/moc_qpdfwriter.o .obj/moc_qplatformbackingstore.o .obj/moc_qvalidator.o .obj/moc_qshaderlanguage_p.o .obj/moc_qopenglshaderprogram.o .obj/moc_qopenglengineshadermanager_p.o .obj/moc_qopengltexture.o .obj/moc_qopengltimerquery.o  -L/home/madkid/qt5/qtbase/lib -lQt5Core -lpthread -lGL -lqtlibpng -L/home/madkid/qt5/qtbase/lib -lQt5Core -lpthread -lqtharfbuzz
collect2: error: ld returned 1 exit status
Makefile:1318: ошибка выполнения рецепта для цели «../../lib/libQt5Gui.so.5.10.0»
MadKid
() автор топика
Ответ на: комментарий от MadKid

Я как раз добрался до того места, где он вылетает с ошибкой:

не то, это только пена, сама ошибка должна быть много выше, если ты собираешь полное дерево то она как правило проскакивает в первые десять-пятнадцать минут(иногда ещё раньше), на этапе сборки QtBase-QtGui это и есть «красноглазие» в его истинном значении, сидеть и максимально сосредоточено пялить в выхлоп сборки с целью поймать заветное «error makefile [2] трам-пам-пам что-то там»

Чтобы это отследить нужно (! ахтунг! чистая шиза) в иксах в эмуляторе терминала, с включенной «сохранять весь журнал» и полной прокруткой запустить сборку и внимательно смотреть за процессом, минут за сорок-час найдешь где он серет бабочками. Суть только в том, чтобы поймать саму ошибку и остановить всё по ctr+С, потом если она чётко локализована, можно запускать в голой консоли.

В «десятке»(5.10.хх) есть неисправленный баг с qtquick1/src/declarative/graphicsitems/qdeclarativetextinput.cpp , из-за него на последних минутах падает вся сборка, если это оно, то патч могу подкинуть, а по линкеру - ты в генте это собираешь?

Gramozeka ★★
()
Последнее исправление: Gramozeka (всего исправлений: 1)
Ответ на: комментарий от EXL

Да, согласен, полезная фича, но тут есть субъективный момент -

время до появления реальной ошибки(проверено практикой) в пределах получаса, время до краха сборки из-за этой ошибки может быть около трёх часов, если стоит задача просто потратить время то да, твой совет рулит. Кто на что учился опять же. Проблема ТС решается за пару часов(это если шизить) или твоим методом но за сутки, потому как нюансы вылезают там, где их совсем не ждёшь и если после каждого изменения сборочных опций ждать по три часа до краха, можно долго этим заниматься. qt/qtwebengine.git тем и славен, что он не ругается если во время компиляции что-то пошло не так, он просто тихо умирает с невразумительной ошибкой как в паре постов выше из-за того что зависимость не была собрана как надо, а ведь там около 30000 модулей которые в итоге собираются в три бинарника и пару библиотек. И вот когда прошло 3,5 часа и на счётчике уже [24555/29987] вдруг error bla-bla-bla.... failed compile... а причина в том что надо было сказать -nomake xamples -nomake tests -c++std c++11 и во время ./init-repository загрузить нужный модуль(и указать его в конфиге как собираемый), который собирается в самом начале, ещё задолго до самого qtwebengine... у меня не настолько крепкие нервы, старый стал.

Опять же непонятно на чём он это собирает - я собирал CBLFS за пару вечеров(на самом деле ночей включил скрипт и лёг спать), вот только с гитовым вебинджайном пришлось повозиться мальца.

Вот пишу это сейчас из этой самой монстры самосборной под 5.10 кутями с преферансом и профурсетками ... вот скрин

Gramozeka ★★
()
Ответ на: комментарий от Gramozeka

ага, понятно... кое-что..

Ну тогда уж лучше

тратата -арг > console.log.txt

и потом вылавливать хоть просмотром, хоть по тексту. а вот допустим, выловил, тогда что делать? У меня при знакомстве с Линуксом - одно удивление и вопросы ))

Я пробовал собирать уже 5.10; 5.9; 5.8; 5.7.1 в 32х и 64-разрядном дебиане, и всё время какая-нить з..па вылазит, да не одна, а за ними - другие. Уже неделю трахаюсь )) Щас установил 5.7.1 минимальную с креатором из бинарного пака, а к ней уже докомпилил (ей же) нужную мне мультимедию. Заголовочники стали видны, компиляция пошла, ура! Да не тут-то было.

Теперь другая фигня: программа при запуске не находит gstreamer (хотя он точно есть во всех возможных вариантах и с милионом плагинов)... плеер не работает. Многие на это жалуются, как я погляжу, но никто толком не знает, что делать.

MadKid
() автор топика
Ответ на: комментарий от Gramozeka

я компилил г++ом, ахаха, пардон за каламбур, сам не ожидал Х)))

конфиг делал тщательно, и не по разу, каждый раз начисто... принимал во внимание все упомянутые Вами опции, и друге тоже, но тем не менее... Попытки как-то отследить источники ошибок, изучение логов, конфигов и мэйков, купирование лишних модулей и фич не привели к желаемому.

мне страшно подумать о том, как я буду потом портировать проект на арм =((

MadKid
() автор топика
Ответ на: комментарий от MadKid

ты б хоть окружение описал для начала -что за система, что из зависимостей установлено, как собираешь, и прочее, а так одни общие слова - «эта пимпочка не фурычит..(((»

anonymous
()
Ответ на: комментарий от MadKid

Какой дебиан(имя! сестра! имя! назови имя этого негодяя! ©)

Вообще, если ты хочешь самостоятельно его собрать, нужно правильно выстроить зависимости перед этим, дебиан славится своей «штабильностью», порой трёх-пятилетней давности, а конкретно для кутей это гарантированный фейл, так как старые версии собираются с кучей патчей, а новые версии только с новым набором и то! без парочки патчей не обойтись, да, деб не лучший выбор для таких экспериментов - лучше подойдёт или генту, или арч, или вообще свой LFS собери(но тут всё не просто). Вот тут почитай что нужно для сборки - http://www.linuxfromscratch.org/blfs/view/svn/x/qt5.html

и желательно, чтобы все Required, Recommended и Optional были установлены, это если ты решишь собирать гитовую версию с init-repository --module-subset=all .

Эта инструкция подходит для гитовой версии, одно «НО», это openssl, если в системе стоит новая(>1.1.xx) то 5.10.0 уже в неё умеет самостоятельно и финт(ниже в code) не нужен, более старые версии требуют старую версию(1.0.хх). Для этого там и стоит финт

echo "INCLUDEPATH += /usr/include/openssl-1.0" >>           \
                     qtbase/src/network/network.pro         &&
export OPENSSL_LIBS='-L/usr/lib/openssl-1.0 -lssl -lcrypto' &&
предварительно там это всё обыгрывается(по ссылке можешь посмотреть)

Gramozeka ★★
()
Ответ на: комментарий от Gramozeka

Дебиан 9.2.1 (stretch) на х86-64 на wmware.

Перед какими-либо действиями в сторону qt обязательно обновлял все зависимости: perl, python, gmp, mpc, xcb, и в особенности - gstreamer (0.1, 1.0), плагины все от гуд до мэд, и ещё около 50 библиотек, в том числе целая пачка, выбраная ручками из списков

apt-cache search «*gstreamer*» apt-cache search «*gst-*»

Выбрал Дебиан, потому что целевая система проекта - raspbian на соответствующей аппаратной платформе... Уже предвижу множество препятствий. Я с линуксом не знаком абсолютно, да и не програмил по-многу раньше, и я в лёгком шоке от трудностей с которыми сталкиваюсь. Причём не в смысле решения целевых задач, а в смысле того, чтобы тулзы заставить хоть как-то работать! Ничо не работает с первого раза, всё оч. запутано, но приходится разбираться и честно говоря, частенько мозг аут оф мемори... Вот спрашиваю себя: или это пройдёт, или надо просто научиться получать удовольствие, или я попал в секту?? Уж во в всяком случае, первое впечатление о линухе - это стихия )), тут грести надо не переставая ))

MadKid
() автор топика
Ответ на: комментарий от MadKid

Я с линуксом не знаком абсолютно, да и не програмил по-многу раньше, и я в лёгком шоке от трудностей с которыми сталкиваюсь. Причём не в смысле решения целевых задач, а в смысле того, чтобы тулзы заставить хоть как-то работать!

ну все с чего-то начинали, тут тебе можно одно посоветовать - чтобы иметь понимание нужно будет много читать, много на буржуйском. Раз ты полез в development то тебе одна дорога - так или иначе собрать свой http://www.linuxfromscratch.org/lfs/ , это самый прямой(но не самый простой) путь разобраться «как это работает». Тут многие тебе скажут, мол чушь, не обязательно всё это изучать, поставь убунту(стопицот ещё дистрибутивов) и будет тебе счастье, но это не приблизит тебя к пониманию процесса ни на шаг, ты будешь бесконечно терять время в пустопорожних сражениях с

а в смысле того, чтобы тулзы заставить хоть как-то работать! Ничо не работает с первого раза, всё оч. запутано, но приходится разбираться и честно говоря, частенько мозг аут оф мемори...

".. и опыт, сын ошибок трудных.." говорит - примерно за месяц упражнений в сборке LFS(следующий шаг BLFS, но с первого раза мало у кого получается собрать рабочий вариант) ты разберёшься как всё это устроено и работает, после чего тебе станут понятны любые дистрибутивы и руководства к ним, у каждого свои особенности, но базовый принцип функционирования един, поэтому стоит попробовать...

а про дебиан - чтобы зависимости заработали(для твоих условий) тебе нужны в первую очередь «What do the *-dev packages in the Linux package ...» , когда ты ставишь apt-get install librsvg2-bin ты ставишь только бинарники и сами библиотеки, для, например, того, чтобы inkscape тебе картинки показывал, а чтобы кутя увидела его же при линковке и сборке, тебе нужно помимо бинарника ещё и librsvg2-dev,.. и так по каждой зависимости, настройка переменных окружения отдельная пляска - простому хомячку для просмотра redtube.com это всё не нужно даже знать, по большому счёту, *-dev пакеты и переменные окружения нужны именно для того с чем ты и заявился...

Gramozeka ★★
()
Последнее исправление: Gramozeka (всего исправлений: 2)
Ответ на: комментарий от MadKid

а в смысле того, чтобы тулзы заставить хоть как-то работать!

Ничего не нужно заставлять, нужно просто читать официальную документацию, а не устаревшие полуофициальные источники.

Все пакеты для сборки Qt в Debian-like дистрибутивах описаны здесь: http://doc.qt.io/qt-5/linux-requirements.html их необходимо установить перед сборкой.

Потом последовать сюда: http://doc.qt.io/qt-5/configure-options.html и сюда: http://doc.qt.io/qt-5/linux-building.html и выполнить конфигурацию и сборку фреймворка.

Ваша проблема в том, что вы пользуетесь неактуальным, неавторитетным и неправильным источником. Зачем вам сборка новейшего кода из GIT? Qt из апстрима как минимум нестабильный, как максимум там будет куча ошибок сборки из-за рассинхронизированности ветвей и пока ещё сырости/неоттестированности.

Вам необходимо скачать исходники последней РЕЛИЗНОЙ версии https://download.qt.io/official_releases/qt/5.9/5.9.3/single/ и делать всё по официальной документации. Оставьте срез репозиториев GIT разработчикам фреймворка Qt, вы в данном случае пользователь библиотеки.

EXL ★★★★★
()
Ответ на: комментарий от EXL

О!

Что касается requirements и configure options, то я это всё конечно же изучал и использовал. Все эти пакеты установлены, и хелп конфигуратора зачитан до дыр.

А вот по поводу того, что надо другой пакет исходников использовать, и что Гит - это не совсем то, что нужно, вот это я не в курсе был. В конце концов, инструкции по вытягиванию их оттуда на самой же куте читал, мне и в голову не приходило, что эти источники «полуофициальные»...

А мультимедию, кстати говоря, я качал именно с релизов. И вот она собралась, но gstreamer всё равно не видит.

MadKid
() автор топика
Ответ на: комментарий от Gramozeka

Ага, вопрос с переменными действительно открыт!

И понять «как это работает» мне крайне необходимо, и сам я тоже считаю, что собрать с нуля - правильная практика.

Я до сих пор занимался только разработкой аппаратуры, и все мои инструменты прекрасно бегали под окошками, но вот настала пора расширять технический кругозор.

Самое неприятная сторона линуксовой среды для меня - это её богатая традициями история и мифология, обилие летописей и анекдотов, привычек, «так сложилось в далёкие времена» и т.п. Обилие туториалов и хауту на несколько экранов, с полным отсутствием объяснений, что же мы делаем. Совершенно непонятно, от чего отталкиваться, и где можно получить максимально конструктивную и объективную инфу...

ЗЫ. -дев пакеты, конечно же, все установлены ))

MadKid
() автор топика
Ответ на: комментарий от MadKid

Обилие туториалов и хауту на несколько экранов, с полным отсутствием объяснений, что же мы делаем. Совершенно непонятно, от чего отталкиваться, и где можно получить максимально конструктивную и объективную инфу...

сосредоточься на чём-то одном, возьми slackware, самый вменяемый и традиционный дистр, в котором всё работает сразу из каробки, когда освоишься потом задавай вопросы, переходи на дебианы и прочую ересь, экспериментируй и прочее.. по переменным конкретного руководства ты не найдёшь, это ситуативная вещь, как правило в каждой отдельной программе есть описание что ей нужно, есть какие-то базовые понятия навроде PKG_CONFIG_PATH, когда начнёшь разбираться, то они приведут тебя к источнику - часть переменных идут от GCC, часть от make, часть от autoconf, что-то от glibc, а все вместе они и составляют тот суп в котором всё и собирается, базовый набор у всех один, поэтому в основном везде одинаковый подход к этим вещам.

Единственное в чём стоит предостеречь - не начинай знакомство с линуксами имеющими на борту системДЭ, этот анальный зонд превращает линукс в венду в самом убогом её воплощении, хотя сейчас понабегут восторженные зомби Поттеринга и начнут срать тебе в мозг что лучше системДЭ на свете нет.

Gramozeka ★★
()
Ответ на: комментарий от MadKid

И понять «как это работает» мне крайне необходимо, и сам я тоже считаю, что собрать с нуля - правильная практика.

1. http://www.linuxfromscratch.org/lfs/view/development/

читай, вникай, пробуй, что не понятно спрашивай. Для сборки слака подойдёт.

2.Когда осилишь, читай Это : http://www.linuxfromscratch.org/blfs/view/svn/ для неё нужна работающая первая часть.

Если осилишь эти две вещи вопрос «как это работает» отпадёт сам собой.

Gramozeka ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.