Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    [SOLVED]Using qmake basics

    General and Desktop
    4
    13
    5618
    Loading More Posts
    • 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.
    • C
      Charlie_Hdz last edited by

      Hi guys.

      Someone can explain me, why qmake do this?:
      @
      quique@Quique-Lap:~/Qt/Examples/Qt-5.3/qmake/tutorial$ qmake -o Makefile hello.pro
      quique@Quique-Lap:~/Qt/Examples/Qt-5.3/qmake/tutorial$ make
      g++ -c -m64 -pipe -g -D_REENTRANT -Wall -W -fPIE -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o hello.o hello.cpp
      In file included from hello.cpp:42:0:
      hello.h:40:23: fatal error: QPushButton: No existe el archivo o el directorio
      #include <QPushButton>
      ^
      compilation terminated.
      make: *** [hello.o] Error 1
      quique@Quique-Lap:~/Qt/Examples/Qt-5.3/qmake/tutorial$
      @
      Thank you all.

      [andreyc EDIT]: Added @ around code

      Kind Regards,
      Enrique Hernandez
      gearstech.com.mx
      chernandez@gearstech.com.mx

      1 Reply Last reply Reply Quote 0
      • dheerendra
        dheerendra Qt Champions 2022 last edited by

        do you have Qt += core gui widgets ?

        Dheerendra
        @Community Service
        Certified Qt Specialist
        http://www.pthinks.com

        1 Reply Last reply Reply Quote 0
        • JKSH
          JKSH Moderators last edited by

          [quote author="Dheerendra" date="1410830730"]do you have Qt += core gui widgets ?[/quote]"core" and "gui" are available by default. You only need to add this line to your .pro file:

          @QT += widgets@

          Charlie_Hdz, since you are using Qt 5.3, have you thought of developing your project inside Qt Creator? It is easier that way, and you don't have to run qmake from the command line.

          Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

          1 Reply Last reply Reply Quote 0
          • dheerendra
            dheerendra Qt Champions 2022 last edited by

            Thank you JKSH and that is true as well. Just wanted to recheck and there is not mistake. Also widgets is also added by default if Qt Widgets Project is created.

            Dheerendra
            @Community Service
            Certified Qt Specialist
            http://www.pthinks.com

            1 Reply Last reply Reply Quote 0
            • C
              Charlie_Hdz last edited by

              Thank you JKSH

              Im following a program that include a few examples of the use of qmake

              Kind Regards,
              Enrique Hernandez
              gearstech.com.mx
              chernandez@gearstech.com.mx

              1 Reply Last reply Reply Quote 0
              • C
                Charlie_Hdz last edited by

                When i just need compile a .cpp file with reference of Qt headers like QTextStream...How can i do it?

                i tried in terminal:

                g++ qtstreamdemo.cpp

                and then:

                qtstreamdemo.cpp:1:23: fatal error: QTextStream: No existe el archivo o el directorio
                #include <QTextStream>
                ^
                compilation terminated.

                Kind Regards,
                Enrique Hernandez
                gearstech.com.mx
                chernandez@gearstech.com.mx

                1 Reply Last reply Reply Quote 0
                • SGaist
                  SGaist Lifetime Qt Champion last edited by

                  You need to provide gcc with the include path to where QTextStream is located. Then you will also have to tell it where the libraries are located as well as link the them.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply Reply Quote 0
                  • C
                    Charlie_Hdz last edited by

                    Ty SGaist

                    Can you help me with a command example?

                    Kind Regards,
                    Enrique Hernandez
                    gearstech.com.mx
                    chernandez@gearstech.com.mx

                    1 Reply Last reply Reply Quote 0
                    • SGaist
                      SGaist Lifetime Qt Champion last edited by

                      That's basic g++

                      @gcc -I/path/to/the/additional/includes -L/path/to/the/additional/libraries -lmylibrary mycppfile.cpp@

                      Anyway, you should rather do something like

                      @
                      mkdir qtstreamdemo
                      cd qtstreamdemo
                      /* write qtstreamdemo.cpp */
                      qmake -project
                      qmake
                      make
                      @

                      If you need additional Qt modules just edit the pro file to add them.

                      Less complicated than writing all what is needed on the command line.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply Reply Quote 0
                      • C
                        Charlie_Hdz last edited by

                        [quote author="SGaist" date="1410902182"]That's basic g++

                        @gcc -I/path/to/the/additional/includes -L/path/to/the/additional/libraries -lmylibrary mycppfile.cpp@

                        Anyway, you should rather do something like

                        @
                        mkdir qtstreamdemo
                        cd qtstreamdemo
                        /* write qtstreamdemo.cpp */
                        qmake -project
                        qmake
                        make
                        @

                        If you need additional Qt modules just edit the pro file to add them.

                        Less complicated than writing all what is needed on the command line.
                        [/quote]

                        Thanks a lot,its working, i did something like this:

                        @
                        mkdir qtstreamdemo
                        cd qtstreamdemo
                        //Create the .pro associated with Qt libraries (CONFIG += qt) and //the .cpp
                        qmake -o Makefile qtstreamdemo.pro
                        make
                        ./qtstreamdemo
                        @

                        Kind Regards,
                        Enrique Hernandez
                        gearstech.com.mx
                        chernandez@gearstech.com.mx

                        1 Reply Last reply Reply Quote 0
                        • C
                          Charlie_Hdz last edited by

                          Can you help me please?
                          I tried to build this project:

                          @
                          TEMPLATE = app
                          QT += widgets
                          QT += core gui
                          CONFIG += qt
                          SOURCE += qtfirstapp.cpp
                          TARGET = qtfirstapp

                          SOURCES +=
                          qtfirstapp.cpp

                          @

                          and the .cpp
                          @

                          #include <QtGui>

                          int main(int argc,char* argv[]){
                          QApplication app(argc,argv);
                          QTextStream cout(stdout);

                          //Declarations of variables
                          int answer=0;
                          do{
                          //local variables to the loop:
                          int factArg=0;
                          int fact(1);
                          factArg=QInputDialog::getInt(0,"Factorial Calculator","Factorial of: ",1); //Calls a template dialog of int inputs
                          cout<<"User entered: "<<factArg<<endl;
                          int i=2;

                          //Here begins the calculation of Factorial of factArg
                          while (i <= factArg){
                            fact=fact*i;
                            ++i;
                          }
                          
                          QString response=QString("The factorial of %1 is %2. \n%3").arg(factArg).arg(fact)
                           .arg("Compute another factorial?");
                          answer=QMessageBox::question(0,"PlayAgain?",response,QMessageBox::Yes | QMessageBox::No);
                          

                          }while(answer == QMessageBox::Yes);

                          return EXIT_SUCCESS;
                          }

                          @

                          Using Qt Creator works fine, but in the Terminal make these errors:

                          quique@Quique-Lap:~$ cd /home/quique/Escritorio/QtProjects/QtFirstApp
                          quique@Quique-Lap:~/Escritorio/QtProjects/QtFirstApp$ qmake qtfirstapp.pro
                          quique@Quique-Lap:~/Escritorio/QtProjects/QtFirstApp$ make
                          g++ -c -m64 -pipe -O2 -D_REENTRANT -Wall -W -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o qtfirstapp.o qtfirstapp.cpp
                          qtfirstapp.cpp: In function ‘int main(int, char**)’:
                          qtfirstapp.cpp:6:20: error: variable ‘QApplication app’ has initializer but incomplete type
                          QApplication app(argc,argv);
                          ^
                          qtfirstapp.cpp:15:13: error: ‘QInputDialog’ has not been declared
                          factArg=QInputDialog::getInt(0,"Factorial Calculator","Factorial of: ",1); //Calls a template dialog of int inputs
                          ^
                          qtfirstapp.cpp:27:12: error: ‘QMessageBox’ has not been declared
                          answer=QMessageBox::question(0,"PlayAgain?",response,QMessageBox::Yes | QMessageBox::No);
                          ^
                          qtfirstapp.cpp:27:58: error: ‘QMessageBox’ has not been declared
                          answer=QMessageBox::question(0,"PlayAgain?",response,QMessageBox::Yes | QMessageBox::No);
                          ^
                          qtfirstapp.cpp:27:77: error: ‘QMessageBox’ has not been declared
                          answer=QMessageBox::question(0,"PlayAgain?",response,QMessageBox::Yes | QMessageBox::No);
                          ^
                          qtfirstapp.cpp:28:20: error: ‘QMessageBox’ has not been declared
                          }while(answer == QMessageBox::Yes);
                          ^
                          make: *** [qtfirstapp.o] Error 1

                          I guess is some command in the .pro but i dont know which is...
                          Thank You

                          Kind Regards,
                          Enrique Hernandez
                          gearstech.com.mx
                          chernandez@gearstech.com.mx

                          1 Reply Last reply Reply Quote 0
                          • JKSH
                            JKSH Moderators last edited by

                            Hi,

                            Error messages contain useful clues, so I recommend that you read them and try to remember what they mean. Most of your errors say '<Class>' has not been declared. That means you haven't #included their headers.

                            You need to #include the header of each class that you use:
                            @
                            #include <QApplication>
                            #include <QInputDialog>
                            #include <QMessageBox>
                            // etc.
                            @

                            I notice that you used #include <QtGui>. This worked in Qt 4, but it doesn't work in Qt 5.

                            Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                            1 Reply Last reply Reply Quote 0
                            • C
                              Charlie_Hdz last edited by

                              Running...

                              #include <QApplication>
                              #include <QInputDialog>
                              #include <QMessageBox>
                              #include <iostream>
                              #include <QTextStream>

                              Thank you all

                              Kind Regards,
                              Enrique Hernandez
                              gearstech.com.mx
                              chernandez@gearstech.com.mx

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post