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
Forum Updated to NodeBB v4.3 + New Features

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

Scheduled Pinned Locked Moved Bulgarian
3 Posts 1 Posters 3.8k 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