Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Bulgarian
  4. Компилиране на Qt 5.3.2
Qt 6.11 is out! See what's new in the release blog

Компилиране на Qt 5.3.2

Scheduled Pinned Locked Moved Bulgarian
3 Posts 1 Posters 6.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Robbin
    wrote on last edited by
    #1

    Хора, помагайте.
    От една седмица се мъча и не се получават нещата.

    Понякога ми се налага да използвам някоя "набързо написана" програма в линукс среда, но на компютър който няма нужда от видео, съответно не се инсталира графична среда и няма qt библиотеки (а и не трябва да се инсталират....). Опитвам се да компилирам 5.3.2 статично, но все едно какво правя - не се получава. Проблема е че ми трябват MySQL драйверите, но не мисля че се компилират....

    Последно за компилацията ползвах това:
    @
    ./configure -platform linux-g++-64 -prefix /opt/qt-static-5.3.2 -release -opensource -confirm-license -static -largefile -no-accessibility -qt-sql-mysql -qt-sql-sqlite -nomake examples -nomake tools -nomake tests -no-compile-examples -no-opengl -qt-xcb
    @

    Предишни пъти ползвах и това:
    @
    ./configure -prefix /opt/qt-static-5.3.2 -release -opensource -confirm-license -static -largefile -no-accessibility -qt-sql-mysql -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -openssl-linked -qt-xcb -nomake examples -nomake tools -nomake tests -no-compile-examples -gui -no-opengl -no-dbus -reduce-relocations -no-c++11
    @

    както и това:
    @
    OPENSSL_LIBS='-L/lib64 -lssl -lcrypto' ./configure -prefix /opt/qt-static-5.3.2 -release -opensource -confirm-license -static -largefile -no-accessibility -qt-sql-mysql -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -openssl-linked -qt-xcb -nomake examples -nomake tools -nomake tests -no-compile-examples -gui -no-opengl -L/lib64/mysql -lmysqlclient -v -I/usr/include/openssl/ -I/usr/include/mysql/
    @

    Винаги резултата е един и същ - при компилацията на фреймуорка няма грешки, компилирам програмата - също без грешки, ъплоудвам я на отдалечения компютър и при опита си да я пусна се оплаква че не намира libmysqlclient.so.18. При 4.8.6 нямах тези проблеми - един път компилиран статично всичко беше ток. Реших се на "ъпгрейд" но май ще се връщам към четворката ако не мога да го оправя това :(

    Компютъра на който компилирам е 64 битова Федора 20 с инсталирани mariadb-devel, mariadb-libs, etc другите мариадб пакети. openssl-devel също е инсталиран, но да речем че мога да преживея липсата на SSL ако мога да пускам програмите локално (а не да правя отдалечена ССЛ връзка). Имам инсталирани libgcc, gcc-c++ и gcc - всичките 4.8.3-7
    Използвам qt-everywhere-opensource-src-5.3.2.tar.gz

    1 Reply Last reply
    0
    • R Offline
      R Offline
      Robbin
      wrote on last edited by
      #2

      Изглежда че проблема е друг, ще трябва да проверявам още, но това което пробвах - в предния пост първия ред с параметри на configure. След като се компилира и инсталира, билднах програмата, проверих с ldd какви библиотеки иска - нямаше нито една от Qt. Ъплоуднах програмата с всички библиотеки които екзекютъбала търсеше, и стартирах програмата като промених LD_LIBRARY_PATH по следния начин

      @
      LD_LIBRARY_PATH=$(pwd) ./mysqltest
      @

      По този начин, след като си търси библиотеките в директорията от където е стартирана, принципно не би трябвало да трябва нищо повече. За съжаление, както написах в първия пост, компилирам на Федора 20, а сървъра на който се опитвам да пусна нещо е ЦентОС 5.4 (който отдавна трябваше да е командирован за постоянно...). При стартирането на приложението там, след като е било компилирано със статичните библиотеки, извежда съобщението:

      @
      libstdc++.so.6: ELF file OS ABI invalid
      @

      Ако компилирам с динамичните библиотеки, първото нещо за което се оплаква е libQt5Sql.so.5
      Така или иначе проблема с вграждането на mysql седи, тъй като дори след последния "успех" пак си търси libmysqlclient.so.18. Тук там из нета чета че и други хора има с подобни проблеми, като цяло версии от 5.1 нагоре трудно се компилират статично. Съответно се задава и въпроса - при положение че mariadb е изцяло опен сорс, защо не се слага готова вградена поддръжка, вместо да трябва допълнително да се компилира mysql.

      Ако някой може да помогне, пишете! Аз междувременно ще пробвам на по- стара система (с по- ранен libstdc++) и вероятно по- ранна версия на Qt, последната 4.8 може би.

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Robbin
        wrote on last edited by
        #3

        Когато човек е изморен не мисли трезво и прави новобрански грешки....

        Не е далече от акъла да проверя че компилираната програма не е статична/монолитна, още повече при положение че търси системни динамични библиотеки. Едно от нещата които не включвах в кода, или по- точно в конфигурацията на проекта в *.pro файла е QMAKE_LFLAGS. В CONFIG съм сложил static, но това явно не е достатъчно вече, така че трябва да се подаде QMAKE_LFLAGS += -static и може би -static-libgcc ако искаме да се включи и това.

        След тази манипулация ми изплю нови 20 грешки, но там вече проблема е от липсата на статичните библиотеки, нещо което се решава с теглене на съответните пакети или прекомпилиране с изключване на излишното (като ICU примерно...).

        Поради някаква причина mariadb-libs във Федора 20 не включва libmysqlclient.a, че трябваше да тегля последната mariadb и от там да вземам библиотеката само (иначе ще си потроша системата и няма да мога да си ползвам мейл клиента :D )

        Както и да е, надявам се това да е последното прекомпилиране и дано тези "бележки" да помогнат и на някой друг ;-)

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved