Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Qmake or make fails to missing libraries (possibly wrong path)
QtWS25 Last Chance

Qmake or make fails to missing libraries (possibly wrong path)

Scheduled Pinned Locked Moved Solved Installation and Deployment
6 Posts 2 Posters 6.2k Views
  • 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.
  • Fred BarclayF Offline
    Fred BarclayF Offline
    Fred Barclay
    wrote on last edited by
    #1

    Hello Mates! I've recently downloaded the opensource QT for Linux installer from the main website, and installed 5.6 and 5.7. Specifically, for 5.7 I installed the gcc components, Qt Purchasing, QT Webkit Engine, SCXML, Gamepage, and the deprecated QT Script. For 5.6, I installed the Desktop gcc components, Purchasing, WebEngine, SCXML, SerialBus, Gamepage, and Script, plus QT Creator 4.1.0.

    I'm trying to follow the "Getting Started Programming with Qt Widgets" Tutorial that came with QT Creator. After following the tutorial, I ran "qmake", only to see qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
    Looking online, it appeared I needed to install qt4-qmake from the repos. So I ran apt-get install qt4-qmake Now qmake seems to finish correctly (at any rate there is not output) but I'm running into the following error with the next step, make:

    /usr/lib/x86_64-linux-gnu/qt4/bin/uic notepad.ui -o ui_notepad.h
    make: /usr/lib/x86_64-linux-gnu/qt4/bin/uic: Command not found
    Makefile:199: recipe for target 'ui_notepad.h' failed
    make: *** [ui_notepad.h] Error 127
    

    Looking around online, it appears that some other people with this problem fixed it by installing qt-sdk from their distro repositories. I'm really reluctant to do this, though, because it will install a different version of qt-creator and other programmes, and I don't want to introduce conflicts or break anything.

    So a few questions:

    1. Is it normal that after installing from the qt-unified-linux-x64-2.0.3-1-online.run installer that I would need to install additional packages from the repositories?
    2. Why did I need to install qt4-qmake, when my program is for qt5? I definitely specified that my project was a qt-5.6 Widgets Application when starting out, and qt-4 isn't installed on this machine.
    3. Is there a certain path to specify when calling make, or am I stuck installing qt-sdk? When installing qt, I went with the default installation directory of /opt/Qt.

    Distro: LMDE 2 "Betsy" 64-bit

    Thanks for any help!
    Fred

    kshegunovK 1 Reply Last reply
    0
    • Fred BarclayF Fred Barclay

      Hello Mates! I've recently downloaded the opensource QT for Linux installer from the main website, and installed 5.6 and 5.7. Specifically, for 5.7 I installed the gcc components, Qt Purchasing, QT Webkit Engine, SCXML, Gamepage, and the deprecated QT Script. For 5.6, I installed the Desktop gcc components, Purchasing, WebEngine, SCXML, SerialBus, Gamepage, and Script, plus QT Creator 4.1.0.

      I'm trying to follow the "Getting Started Programming with Qt Widgets" Tutorial that came with QT Creator. After following the tutorial, I ran "qmake", only to see qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
      Looking online, it appeared I needed to install qt4-qmake from the repos. So I ran apt-get install qt4-qmake Now qmake seems to finish correctly (at any rate there is not output) but I'm running into the following error with the next step, make:

      /usr/lib/x86_64-linux-gnu/qt4/bin/uic notepad.ui -o ui_notepad.h
      make: /usr/lib/x86_64-linux-gnu/qt4/bin/uic: Command not found
      Makefile:199: recipe for target 'ui_notepad.h' failed
      make: *** [ui_notepad.h] Error 127
      

      Looking around online, it appears that some other people with this problem fixed it by installing qt-sdk from their distro repositories. I'm really reluctant to do this, though, because it will install a different version of qt-creator and other programmes, and I don't want to introduce conflicts or break anything.

      So a few questions:

      1. Is it normal that after installing from the qt-unified-linux-x64-2.0.3-1-online.run installer that I would need to install additional packages from the repositories?
      2. Why did I need to install qt4-qmake, when my program is for qt5? I definitely specified that my project was a qt-5.6 Widgets Application when starting out, and qt-4 isn't installed on this machine.
      3. Is there a certain path to specify when calling make, or am I stuck installing qt-sdk? When installing qt, I went with the default installation directory of /opt/Qt.

      Distro: LMDE 2 "Betsy" 64-bit

      Thanks for any help!
      Fred

      kshegunovK Offline
      kshegunovK Offline
      kshegunov
      Moderators
      wrote on last edited by
      #2

      Hello @Fred-Barclay,

      After following the tutorial, I ran "qmake", only to see qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory

      That's just bad configuration, you should be able to fix it easily enough.

      Looking online, it appeared I needed to install qt4-qmake from the repos.

      No, you need qt5-qmake, but that's only if you're going to develop with the Qt distributed along with the Linux distro (5.6 for me). If you had installed your own Qt distribution, like you did, then you need to create a Kit for Qt Creator that points to the qmake that came with that same Qt distribution.

      Looking around online, it appears that some other people with this problem fixed it by installing qt-sdk from their distro repositories. I'm really reluctant to do this, though, because it will install a different version of qt-creator and other programmes, and I don't want to introduce conflicts or break anything.

      You can't break it. I usually use my Debian-brought Qt package for development.

      Is it normal that after installing from the qt-unified-linux-x64-2.0.3-1-online.run installer that I would need to install additional packages from the repositories?

      You may need to, yes. Compiler, debugger, the auto-tools package etc.

      Why did I need to install qt4-qmake, when my program is for qt5?

      You didn't.

      Is there a certain path to specify when calling make, or am I stuck installing qt-sdk? When installing qt, I went with the default installation directory of /opt/Qt.

      No, what you should do instead is to create a Kit with the qmake you got in /opt/Qt to develop with that version of Qt.

      Distro: LMDE 2 "Betsy" 64-bit

      What Debian distribution is this based on? Jessie (stable)?

      Kind regards.

      Read and abide by the Qt Code of Conduct

      1 Reply Last reply
      0
      • Fred BarclayF Offline
        Fred BarclayF Offline
        Fred Barclay
        wrote on last edited by
        #3

        @kshegunov Thanks for your reply! Yes, LMDE 2 is based on Debian Jessie.
        I found the path for qmake in /opt: /opt/Qt/5.6/gcc_64/bin/qmake but I can't tell how to make a kit with that. I've read https://doc.qt.io/qtcreator/creator-targets.html but it seems to be more concerned with cmake. Can you walk me through what I should do?

        Looking at the prexisting, auto-detected kit for 5.6.1, cmake is definitely not detected. Do you know where I should look? I've already checked /opt/Qt/5.6/gcc_64/bin/ and it isn't there. There are quite a bit of cmake files inside /opt/Qt/5.6/gcc_64/lib/cmake but I amd not sure which of these (if any) is appropriate to use.

        As an experiment, I installed cmake from the Debian Jessie repos (and uninstalled qt4-qmake). Qmake does seem to complete successfully, but make is throwing out a different error:

        $ /opt/Qt/5.6/gcc_64/bin/qmake
        $ make
        g++ -Wl,-O1 -Wl,-rpath,/opt/Qt/5.6/gcc_64/lib -o Notepad main.o notepad.o moc_notepad.o   -L/opt/Qt/5.6/gcc_64/lib -lQt5Widgets -L/usr/lib64 -lQt5Gui -lQt5Core -lGL -lpthread 
        /usr/bin/ld: cannot find -lGL
        collect2: error: ld returned 1 exit status
        Makefile:201: recipe for target 'Notepad' failed
        make: *** [Notepad] Error 1
        

        Thanks again, and sorry for the newbie-ness! On the rare occasions I've designed a GUI for my code, I always used something in the gtk family so this is quite a new experience for me!

        1 Reply Last reply
        0
        • kshegunovK Offline
          kshegunovK Offline
          kshegunov
          Moderators
          wrote on last edited by kshegunov
          #4

          Hi,
          You don't need CMake at this point. Add a Qt version for /opt/Qt/5.6/gcc_64/bin/qmake. After that make a kit as described here. If you haven't had compiler and debugger installed, then by all means do that (you need g++ and gdb, also autotools and I think that should be sufficient).

          After you've created a kit, either create a project and configure it with that kit, or add the kit to an existing project (and configure the project build paths accordingly).

          I think this should get you going.

          PS:
          /usr/bin/ld: cannot find -lGL
          Means you don't have development package for OpenGL. Install one through the package manager (search for mesa-dev, opengl-dev or something of that sort).
          Kind regards.

          Read and abide by the Qt Code of Conduct

          1 Reply Last reply
          0
          • Fred BarclayF Offline
            Fred BarclayF Offline
            Fred Barclay
            wrote on last edited by
            #5

            Success! Compilation completed without a hitch and I have my first working QT GUI! :-)

            Rehash of what I did since your last post:
            Created a new kit. (I didn't link it to my project... oops but it looks like it didn't matter).
            Installed libqt5opengl5-dev
            Ran /opt/Qt/5.6/gcc_64/bin/qmake and make

            So for future reference, I need to use the correct path to qmake (setting up a kit manually will do that) and install libqt5opengl5-dev.

            Thank you!
            Fred

            kshegunovK 1 Reply Last reply
            0
            • Fred BarclayF Fred Barclay

              Success! Compilation completed without a hitch and I have my first working QT GUI! :-)

              Rehash of what I did since your last post:
              Created a new kit. (I didn't link it to my project... oops but it looks like it didn't matter).
              Installed libqt5opengl5-dev
              Ran /opt/Qt/5.6/gcc_64/bin/qmake and make

              So for future reference, I need to use the correct path to qmake (setting up a kit manually will do that) and install libqt5opengl5-dev.

              Thank you!
              Fred

              kshegunovK Offline
              kshegunovK Offline
              kshegunov
              Moderators
              wrote on last edited by
              #6

              @Fred-Barclay said in Qmake or make fails to missing libraries (possibly wrong path):

              So for future reference, I need to use the correct path to qmake (setting up a kit manually will do that) and install libqt5opengl5-dev.

              Actually, you don't need libqt5opengl5-dev but libgl1-mesa-dev. However, the former depends on the latter and will pull it from the repository.

              Thank you!

              You're welcome.

              Read and abide by the Qt Code of Conduct

              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