Error on ./configure script in qt-everywhere-opensource-src-5.9.6



  • Hello,

    in a Debian 9 Linux Os i would execute the configure script in the Folder
    qt-everywhere-opensource-src-5.9.6.
    I got the error:

    • cd qtbase
    • /home/bernd/qt-everywhere-opensource-src-5.9.6/qtbase/configure -top-Level
      Creating qmake...
      '; did you mean '-ffunction-sections'?
      make: *** [Project.o] Fehler1

    What does this mean, whats the reason an how could I solve the Problem?
    Thank you and best regards.



  • @Hi_Be

    Hi and welcome to devnet forum

    Did you type "-top-Level" or "-top-level"?



  • Hello koahnig,
    thank you for your answer.

    I type only ./configure in the main folder. In my previos message the term "-top-Level", is my error, when typing the message. In the terminal window is shown : ".../configure -top-level". Sorry.


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    What version of gcc do you have installed ?



  • Hello SGaist,
    thank you for your answert.

    The version of gcc ist 6.3.0.



  • When i download the qt-everywhere..-package and i try to run the
    configure script and i got the error "'; did you mean '-ffunction-sections'?",
    is it possible, that the package "qt-everywhere-opensource-src-5.9.6" has
    errors?


  • Lifetime Qt Champion

    Are you running a fully updated Debian installation ?

    Just tested a fresh download of the Qt 5.9.6 archive, ran an out of source configure and make call and it's building fine.



  • Hello SGaist,

    i tried again:

    1. Update Debian:

    root@deb9onR86:/home/bernd# sudo apt update
    Ign:1 http://ftp.uni-stuttgart.de/debian stretch InRelease
    OK:2 http://ftp.uni-stuttgart.de/debian stretch-updates InRelease
    OK:3 http://security.debian.org/debian-security stretch/updates InRelease
    OK:4 http://ftp.uni-stuttgart.de/debian stretch Release
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen.... Fertig
    Alle Pakete sind aktuell.

    1. I did an new download of "qt-everywhere-opensource-src-5.9.6" from "https://download.qt.io/archive/qt/5.9/5.9.6/single/"

    2. First test:
      root@deb9onR86:/home/bernd/qt-everywhere-opensource-src-5.9.6# ./configure -prefix $PWD/qtbase -opensource -nomake tests
      bash: ./configure: /bin/sh^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden

    3. Scipt configure opened mit KWrite. -> Extras ->EndofLine ->Unix and
      saving the File
      -the same procedure with configure-script in qtbase

    4. Second test:

    root@deb9onR86:/home/bernd/qt-everywhere-opensource-src-5.9.6# ./configure -prefix $PWD/qtbase -opensource -nomake tests

    • cd qtbase
    • /home/bernd/qt-everywhere-opensource-src-5.9.6/qtbase/configure -top-level -prefix /home/bernd/qt-everywhere-opensource-src-5.9.6/qtbase -opensource -nomake tests
      Creating qmake...
      ’; did you mean ‘-ffunction-sections’?
      .make: *** [project.o] Fehler 1

    Did I something wrong?



  • @Hi_Be

    Might be a stupid question, you downloaded the *.tar.xz ?



  • @koahnig
    I have downloaded the zip-File. Is there a diffence to the tar.xz-file*?


  • Moderators

    @Hi_Be said in Error on ./configure script in qt-everywhere-opensource-src-5.9.6:

    I have downloaded the zip-File. Is there a diffence to the tar.xz-file*?

    Yes, zip is to build on Windows



  • @jsulm :
    Ok, thank you, i thought it's another type of compression. I try it again.



  • @Hi_Be

    As @jsulm already wrote.

    Typically people are downloading the smaller archive, but there is a difference in line endings and other stuff. Unfortnately are the different configure versions of both OS flavors included in both.



  • Now, "./configure" seems to be working:

    root@deb9onR86:/home/bernd/qt-everywhere-opensource-src-5.9.6# ./configure -prefix $PWD/qtbase -opensource -nomake tests

    • cd qtbase
    • /home/bernd/qt-everywhere-opensource-src-5.9.6/qtbase/configure -top-level -prefix /home/bernd/qt-everywhere-opensource-src-5.9.6/qtbase -opensource -nomake tests
      Creating qmake...
      .Done.

    This is the Qt Open Source Edition.

    You are licensed to use this software under the terms of
    the GNU Lesser General Public License (LGPL) version 3
    or the GNU General Public License (GPL) version 2.

    Type 'L' to view the GNU Lesser General Public License version 3 (LGPLv3).
    Type 'G' to view the GNU General Public License version 2 (GPLv2).
    Type 'y' to accept this license offer.
    Type 'n' to decline this license offer.

    Do you accept the terms of either license? y

    .....

    Opus ................................. no
    ffmpeg ............................... no
    

    Note: Also available for Linux: linux-clang linux-icc

    Note: Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing.

    Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.

    Qt is now configured for building. Just run 'make'.
    Once everything is built, Qt is installed.
    You should NOT run 'make install'.
    Note that this build cannot be deployed to other machines or devices.

    Prior to reconfiguration, make sure you remove any leftovers from
    the previous build.```


    Now I try make:

    -> root@deb9onR86:/home/bernd# make

    and after a long time comiling I got:

    .....
    where-opensource-src-5.9.6/qtbase/mkspecs/linux-g++ -o .obj/src/mbgl/renderer/renderer_impl.o src/mbgl/renderer/renderer_impl.cpp
    {standard input}: Assembler messages:
    {standard input}:27174: Error: invalid operands (UND and .gcc_except_table sections) for `-'
    g++: internal compiler error: Getötet (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-6/README.Bugs> for instructions.
    Makefile:36521: die Regel für Ziel „.obj/src/mbgl/renderer/renderer_impl.o“ scheiterte
    make[5]: *** [.obj/src/mbgl/renderer/renderer_impl.o] Fehler 4
    make[5]: Verzeichnis „/home/bernd/qt-everywhere-opensource-src-5.9.6/qtlocation/src/3rdparty/mapbox-gl-native“ wird verlassen
    Makefile:200: die Regel für Ziel „sub-------3rdparty-mapbox-gl-native-make_first“ scheiterte
    make[4]: *** [sub-------3rdparty-mapbox-gl-native-make_first] Fehler 2
    make[4]: Verzeichnis „/home/bernd/qt-everywhere-opensource-src-5.9.6/qtlocation/src/plugins/geoservices“ wird verlassen
    Makefile:70: die Regel für Ziel „sub-geoservices-make_first“ scheiterte
    make[3]: *** [sub-geoservices-make_first] Fehler 2
    make[3]: Verzeichnis „/home/bernd/qt-everywhere-opensource-src-5.9.6/qtlocation/src/plugins“ wird verlassen
    Makefile:204: die Regel für Ziel „sub-plugins-make_first“ scheiterte
    make[2]: *** [sub-plugins-make_first] Fehler 2
    make[2]: Verzeichnis „/home/bernd/qt-everywhere-opensource-src-5.9.6/qtlocation/src“ wird verlassen
    Makefile:46: die Regel für Ziel „sub-src-make_first“ scheiterte
    make[1]: *** [sub-src-make_first] Fehler 2
    make[1]: Verzeichnis „/home/bernd/qt-everywhere-opensource-src-5.9.6/qtlocation“ wird verlassen
    Makefile:729: die Regel für Ziel „module-qtlocation-make_first“ scheiterte
    make: *** [module-qtlocation-make_first] Fehler 2
    root@deb9onR86:/home/bernd/qt-everywhere-opensource-src-5.9.6#

    What is the matter for this error?

    Thank you and best regards.


  • Lifetime Qt Champion

    Looks like the mapbox-gl-native building triggers a compiler bug. Did you install anything related to to Mapbox on your machine before building ?



  • I am not aware of and it was not my intention. Can I check this or is it posible,
    to take out of compilation?

    Thank you and best regards.


  • Lifetime Qt Champion

    The most simple is: do you need all of Qt's module right now ? If not, then only build the one you are going to use. It's going to take less time and disk space.



  • No, you are right, i did not Need all modules. But there are 2 Problems.
    First, if i want to skip a module, where i got the right name as skip-parameter,
    because the module-names on the QT-Webseite delivers an error. For example for the
    module "Qt SQL" -skip qt sql or -skip qt_sql or -skip sql doesn't work.

    Second, is it possible to add later the module again, if nessecary?



  • @Hi_Be said in Error on ./configure script in qt-everywhere-opensource-src-5.9.6:

    No, you are right, i did not Need all modules. But there are 2 Problems.
    First, if i want to skip a module, where i got the right name as skip-parameter,
    because the module-names on the QT-Webseite delivers an error. For example for the
    module "Qt SQL" -skip qt sql or -skip qt_sql or -skip sql doesn't work.

    https://doc.qt.io/qt-5/configure-options.html#excluding-qt-modules and
    https://doc.qt.io/qt-5/sql-driver.html#building-the-drivers
    You should see all options with running

    configure -help
    

    Second, is it possible to add later the module again, if nessecary?

    Yes



  • Sorry, may be a missunderstandig of mine, but

    in https://doc.qt.io/qt-5/configure-options.html#excluding-qt-modules
    is discripted:
    Excluding Qt Modules¶

    Configure's -skip option allows top-level source directories to be excluded from the Qt build. Note that many directories contain multiple Qt modules. For example, to exclude Qt NFC and Qt Bluetooth from the Qt build, provide -skip qtconnectivity as the argument to configure.

    ./configure -skip qtconnectivity

    and when i look under QT-Modules (https://doc.qt.io/qt-5/qtmodules.html) i see:

    The following table lists the Qt essentials:

    Module

    Description

    Qt Core Core non-graphical classes used by other modules.
    Qt GUI Base classes for graphical user interface (GUI) components. Includes OpenGL.
    Qt Multimedia Classes for audio, video, radio and camera functionality.
    Qt Multimedia Widgets Widget-based classes for implementing multimedia functionality.
    Qt Network Classes to make network programming easier and more portable.
    Qt QML Classes for QML and JavaScript languages.
    Qt Quick A declarative framework for building highly dynamic applications with custom user interfaces.
    Qt Quick Controls 2 Provides lightweight QML types for creating performant user interfaces for desktop, embedded, and mobile devices. These types employ a simple styling architecture and are very efficient.
    Qt Quick Dialogs Types for creating and interacting with system dialogs from a Qt Quick application.
    Qt Quick Layouts Layouts are items that are used to arrange Qt Quick 2 based items in the user interface.
    Qt Quick Test A unit test framework for QML applications, where the test cases are written as JavaScript functions.
    Qt SQL Classes for database integration using SQL.
    ...

    Can you give me a example, how the Modul QT SQL could be excluded and where
    i found the argument for skip?
    May be, i understand this better.
    Thank you.



  • @Hi_Be

    You can check out what the proper options is by

    ./configure -help
    

    Under windows is says:

    Database options:
    
      -sql-<driver> ........ Enable SQL <driver> plugin. Supported drivers:
                             db2 ibase mysql oci odbc psql sqlite2 sqlite tds
                             [all auto]
      -sqlite .............. Select used sqlite3 [system/qt]
    

    I would use the prefix "-no" which would be "-no-sql-mysql" according to this help text.


  • Lifetime Qt Champion

    To shorten things, start by only building qtbase, then you can continue with the other modules.



  • Ok, now the building of qt works!

    But to get the correct Parameters/arguments for adding or removing
    modules likes a little as a quesswork.

    For example in the documentation was the example

    "./configure -skip qtconnectivity"

    where "qtconnectivity" belongs to the modules "Qt NFC" and "Qt Bluetooth" (as descriped in the doc by the skip example)

    But where could i find, that "qtconnectivity" was the right argument to
    remove connections?

    Neither the terminal Output of "./configure -help" nor the terminal
    Output of the configure script, wenn running:


    Build type: linux-g++ (x86_64, CPU features: mmx sse sse2)
    Configuration: use_gold_linker sse2 sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples enable_new_dtags f16c largefile precompile_header shared rpath release c++11 c++14 c++1z concurrent dbus no-pkg-config reduce_exports reduce_relocations stl
    Build options:
    Mode ................................... release
    Optimize release build for size ........ no
    Building shared libraries .............. yes
    Using C++ standard ..................... C++1z
    Using ccache ........................... no
    Using gold linker ...................... yes
    Using new DTAGS ........................ yes
    Using precompiled headers .............. yes
    Using LTCG ............................. no
    Target compiler supports:
    SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
    AVX .................................. AVX AVX2 F16C
    AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
    Build parts ............................ libs examples tools
    Qt modules and options:
    Qt Concurrent .......................... yes
    ....

    (an so on) contains the term "qtconnectivity".

    Is there no complete list of all arguments of skip and
    the belonging modules and a list of arguments off
    modules which ar by -no-..... excluded?
    For example:

    • skip
      Connections (Bluetooth, NFC,..) - "qtconnectivity"
      Speech - "qtspeech"
      Developement Tools - "devtools"

    Thank you and best regards


  • Lifetime Qt Champion

    IIRC, the skip argument matches the name of the modules you can find as sub-folders in the Qt 5 root folder.



  • Thank you very much. This answer is very helpfully for me.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.