Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. executable runs fine from local directory / throws error with IDE.
Forum Updated to NodeBB v4.3 + New Features

executable runs fine from local directory / throws error with IDE.

Scheduled Pinned Locked Moved General and Desktop
27 Posts 4 Posters 6.6k Views 4 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.
  • TechnologistT Offline
    TechnologistT Offline
    Technologist
    wrote on last edited by Technologist
    #14

    Ok, I built the "official" hello world app which worked flawlessly. The #include <QApplication>
    didn't throw an error.

    I ran the "Unofficial" hello world and compilation stopped secondary to error: qapplication.h: No such file or directory

    Ive compared both .pro files and I don't see why the unofficial can't find the same include that the "official" hello world can. I'll post

    "official" HW .pro file/main

    #-------------------------------------------------
    #
    # Project created by QtCreator 2015-04-17T08:55:34
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = TestApp
    TEMPLATE = app
    
    
    SOURCES += main.cpp\
            mainwindow.cpp
    
    HEADERS  += mainwindow.h
    
    FORMS    += mainwindow.ui
    
    main.cpp
    
    #include "mainwindow.h"
    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }
    
    "Unofficial" HW File
    '''
    

    Unofficial Hello world

    .pro file - qapp/qbutton not found

    QT       += core
    
    QT       -= gui
    
    TARGET = HelloWorldUnofficialvsTestApp
    CONFIG   += console
    CONFIG   -= app_bundle
    
    TEMPLATE = app
    
    
    SOURCES += main.cpp
    
    #include <qapplication.h>
    #include <qpushbutton.h>
    
    
    int main( int argc, char **argv )
    {
        QApplication a( argc, argv );
    
        QPushButton hello( "Hello world!", 0 );
        hello.resize( 100, 30 );
    
        a.setMainWidget( &hello );
        hello.show();
        return a.exec();
    }
    1 Reply Last reply
    0
    • JKSHJ Offline
      JKSHJ Offline
      JKSH
      Moderators
      wrote on last edited by JKSH
      #15

      @Technologist said:

      Ive compared both .pro files and I don't see why the unofficial can't find the same include that the "official" hello world can.

      By default, the Qt Core and Qt GUI modules are available for your project. Let's see how the .pro files change this.

      "official" HW .pro file
      QT += widgets

      This line says, "ADD the Qt Widgets module to my project". This is required to find QApplication and QPushButton, because they belong to the Qt Widgets module. They used to be in the Qt GUI module in Qt 4, but Qt 5 has a new structure. This is one big reason to avoid old tutorials and stick to new ones.

      Unofficial Hello world
      QT -= gui

      This line says, "EXCLUDE the Qt GUI module from my project". This removes all GUI functionality, like OpenGL. Since you want to build an OpenCV app, you probably don't want this option!

      See https://doc.qt.io/qt-5/qtmodules.html for a list of all available modules.

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

      1 Reply Last reply
      0
      • TechnologistT Offline
        TechnologistT Offline
        Technologist
        wrote on last edited by
        #16

        That shows that the configuration problem of .pro file was human error. It found my qt header files. Thanks for the pointer on opel GL etc. This solution rules out a single error behind both. This problem is fixed however the first problem persists: the IDE crashes when I build the "Show Picture" routine, but runs perfectly when I execute it from build directory. Do I need to close out this ticket and reopen it or finish out here?

        Thanks for your time

        1 Reply Last reply
        0
        • JKSHJ Offline
          JKSHJ Offline
          JKSH
          Moderators
          wrote on last edited by JKSH
          #17

          @Technologist said:

          That shows that the configuration problem of .pro file was human error. It found my qt header files. Thanks for the pointer on opel GL etc. This solution rules out a single error behind both. This problem is fixed however the first problem persists: the IDE crashes when I build the "Show Picture" routine, but runs perfectly when I execute it from build directory. Do I need to close out this ticket and reopen it or finish out here?

          Thanks for your time

          You're welcome :)

          Yes, this little excursion helped us to establish that your installation of Qt and the IDE are fine. So, the problem probably lies in your project configuration or environment.

          I just noticed that you have Qt and Qt Creator in your PATH. This is very bad, because they both contain different (and incompatible) versions of the same DLL (e.g. Qt5Core.dll). Remove them from your PATH. There is no need for anything Qt-related to be in the PATH, and having them there is the cause of many mysterious crashes.

          After cleaning your PATH, try running your program again. (To do it outside the IDE the proper way, see http://wiki.qt.io/Deploy_an_Application_on_Windows )

          In general, MSVC and MinGW are incompatible. Qt Creator is a Qt-built program too, which uses MSVC 2010-built Qt DLLs. I also noticed that your copy OpenCV is built with MSVC 2012. I'm not sure if this is compatible with your MinGW-built app.

          You can continue posting here, as it's still about your original post.

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

          1 Reply Last reply
          0
          • TechnologistT Offline
            TechnologistT Offline
            Technologist
            wrote on last edited by Technologist
            #18

            FYI the platform was built using cmake and mingw, not MSVS (I don't have msvs on the system.) -- if that's coming across from the ?path?. Was it this line: %OPENCV%\buildx86\vc11Honestly I think I put it in the path mistakenly. Can I remove it?

            OK cleaned my path. No more missing qt files with Widgets addition to pro file. Application still continue to crash in intialization phase. Sometimes it will throw this error a lot of the time or just open a window and crash. Below it can't find an opencv file.

            The program can't start because libgcc_s_dw2-1.dll is missing from your computer Try installing the program to fix this problem.
            

            New local path: C:\OpenCV-2.3.1\bin;C:\OpenCV-2.3.1\install\include\opencv2;C:\OpenCV-2.3.1\lib;
            System path:%OPENCV%\build\x86\vc11\bin; c:\OpenCV-2.3.1\bin;C:\opencv-win\opencv\sources\modules;

            error :C:\Users\Technologist\Documents\NewOne\main.cpp:2: error: opencv2/core/core.hpp: No such file or directory #include <opencv2/core/core.hpp>
            ^
            pro. file:

            QT       += core
            
            QT       += gui
            QT       += widgets
            
            TARGET = NewOne
            CONFIG   += console
            CONFIG   -= app_bundle
            
            TEMPLATE = app
            
            SOURCES += main.cpp
            
            INCLUDEPATH += "C:/OpenCV-2.3.1/install/include/opencv2/"
            
            LIBS += -LC:\OpenCV-2.3.1\lib\
                -lopencv_core2411.dll.a \
                -lopencv_highgui2411.dl.al \
                -lopencv_imgproc2411.dll.a \
                -lopencv_features2d2411.dll.a \
                -lopencv_calib3d2411.dll.a
            
            #include <QCoreApplication>
            #include <opencv2/core/core.hpp>
            #include <opencv2/highgui/highgui.hpp>
            int main() {
                    // read an image
                    cv::Mat image= cv::imread("img.jpg");
                    // create image window named "My Image"
                    cv::namedWindow("My Image");
                    // show the image on window
                    cv::imshow("My Image", image);
                    // wait key for 5000 ms
                    cv::waitKey(5000);
                    return 1;
            }
            
            
            JKSHJ 1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by SGaist
              #19

              Don't include opencv2 in your INCLUDEPATH entry

              INCLUDEPATH += "C:/OpenCV-2.3.1/install/include/"

              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
              0
              • TechnologistT Offline
                TechnologistT Offline
                Technologist
                wrote on last edited by Technologist
                #20

                I don't see any opencv2 in your includepath unless you are referring to the opencv2 down the file directory from there.

                INCLUDEPATH += "C:\OpenCV-2.3.1\install\include\opencv2"
                

                Sorry, now I am feeling newbish.

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #21

                  That's the point. Since you use:

                  #include <opencv2/core/core.hpp>

                  If you use INCLUDEPATH += "C:/OpenCV-2.3.1/install/include/opencv2/" then the headers won't be found because you are trying to include a file that would be searched like:
                  "C:/OpenCV-2.3.1/install/include/opencv2/opencv2/core/core.hpp".

                  So either remove opencv2 from your include lines or remove it from your INCLUDEPATH 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
                  0
                  • TechnologistT Technologist

                    FYI the platform was built using cmake and mingw, not MSVS (I don't have msvs on the system.) -- if that's coming across from the ?path?. Was it this line: %OPENCV%\buildx86\vc11Honestly I think I put it in the path mistakenly. Can I remove it?

                    OK cleaned my path. No more missing qt files with Widgets addition to pro file. Application still continue to crash in intialization phase. Sometimes it will throw this error a lot of the time or just open a window and crash. Below it can't find an opencv file.

                    The program can't start because libgcc_s_dw2-1.dll is missing from your computer Try installing the program to fix this problem.
                    

                    New local path: C:\OpenCV-2.3.1\bin;C:\OpenCV-2.3.1\install\include\opencv2;C:\OpenCV-2.3.1\lib;
                    System path:%OPENCV%\build\x86\vc11\bin; c:\OpenCV-2.3.1\bin;C:\opencv-win\opencv\sources\modules;

                    error :C:\Users\Technologist\Documents\NewOne\main.cpp:2: error: opencv2/core/core.hpp: No such file or directory #include <opencv2/core/core.hpp>
                    ^
                    pro. file:

                    QT       += core
                    
                    QT       += gui
                    QT       += widgets
                    
                    TARGET = NewOne
                    CONFIG   += console
                    CONFIG   -= app_bundle
                    
                    TEMPLATE = app
                    
                    SOURCES += main.cpp
                    
                    INCLUDEPATH += "C:/OpenCV-2.3.1/install/include/opencv2/"
                    
                    LIBS += -LC:\OpenCV-2.3.1\lib\
                        -lopencv_core2411.dll.a \
                        -lopencv_highgui2411.dl.al \
                        -lopencv_imgproc2411.dll.a \
                        -lopencv_features2d2411.dll.a \
                        -lopencv_calib3d2411.dll.a
                    
                    #include <QCoreApplication>
                    #include <opencv2/core/core.hpp>
                    #include <opencv2/highgui/highgui.hpp>
                    int main() {
                            // read an image
                            cv::Mat image= cv::imread("img.jpg");
                            // create image window named "My Image"
                            cv::namedWindow("My Image");
                            // show the image on window
                            cv::imshow("My Image", image);
                            // wait key for 5000 ms
                            cv::waitKey(5000);
                            return 1;
                    }
                    
                    
                    JKSHJ Offline
                    JKSHJ Offline
                    JKSH
                    Moderators
                    wrote on last edited by
                    #22

                    @Technologist said:

                    FYI the platform was built using cmake and mingw, not MSVS (I don't have msvs on the system.) -- if that's coming across from the ?path?. Was it this line: %OPENCV%\buildx86\vc11

                    Yes, it was that line. "VC11" represents Visual Studio 2012.

                    Honestly I think I put it in the path mistakenly. Can I remove it?

                    I don't know, as I've never used OpenCV myself. How does OpenCV recommend you set up your libraries?

                    OK cleaned my path. No more missing qt files with Widgets addition to pro file. Application still continue to crash in intialization phase. Sometimes it will throw this error a lot of the time or just open a window and crash. Below it can't find an opencv file.

                    The program can't start because libgcc_s_dw2-1.dll is missing from your computer Try installing the program to fix this problem.
                    

                    That's not an error that can only happen "some of the time" for a particular setup -- it either happens all of the time, or it won't happen.

                    I suspect that you are trying to launch your app in different ways but then combining their results into one observation. Please be systematic in your investigations: Describe what you do leading up to a specific crash (e.g. "This happens I try to launch my app from the IDE" and "That happens when I try to launch my app from the build directory")

                    Note: Launching from a build directory is like trying to run a deployed application. Follow http://wiki.qt.io/Deploy_an_Application_on_Windows carefully

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

                    1 Reply Last reply
                    0
                    • TechnologistT Offline
                      TechnologistT Offline
                      Technologist
                      wrote on last edited by Technologist
                      #23

                      I suspect that you are trying to launch your app in different ways but then combining their results into one observation.. Please be systematic in your investigations.

                      The more systematic the better. I am trying to get all my apps, as with any good scientific analysis, running from the same baseline. We have done most of that already by clearing up the header and include file issues, and this has prepared the way for a final solution, easier to see with less stuff being wrong. Now its finally the library error they all seem to share.

                      Thx for your time.

                      Below: :-1: error: cannot find -llibopencv_core2411.dll.a  :-1: error: cannot find -llibopencv_highgui2411.dll.a
                      

                      .pro

                      QT       += core
                      QT       += widgets
                      QT       += gui
                      
                      TARGET = AnotherWack
                      CONFIG   += console
                      CONFIG   -= app_bundle
                      
                      TEMPLATE = app
                      
                      
                      SOURCES += main.cpp
                      
                      INCLUDEPATH += "C:/OpenCV-2.3.1/install/include/"
                      
                      LIBS += -LC:/OpenCV-2.3.1/lib \
                              -llibopencv_core2411.dll.a \
                              -llibopencv_highgui2411.dll.a \
                      

                      main

                      #include <QCoreApplication>
                      #include <opencv2/core/core.hpp>
                      #include <opencv2/highgui/highgui.hpp>
                      
                      int main() {
                              // read an image
                              cv::Mat image= cv::imread("img.jpg");
                              // create image window named "My Image"
                              cv::namedWindow("My Image");
                              // show the image on window
                              cv::imshow("My Image", image);
                              // wait key for 5000 ms
                              cv::waitKey(5000);
                              return 1;
                      }
                      
                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        mcosta
                        wrote on last edited by
                        #24

                        @Technologist said:

                        -llibopencv_core2411.dll.a

                        Hi,

                        if you use the flag -l you have to omit the lib prefix and the extensions -llibopencv_core2411

                        Once your problem is solved don't forget to:

                        • Mark the thread as SOLVED using the Topic Tool menu
                        • Vote up the answer(s) that helped you to solve the issue

                        You can embed images using (http://imgur.com/) or (http://postimage.org/)

                        1 Reply Last reply
                        0
                        • TechnologistT Offline
                          TechnologistT Offline
                          Technologist
                          wrote on last edited by Technologist
                          #25

                          I'm no longer getting the include and library errors that I was. The main error was getting a build error with a working executable. Now after installing these changes, I get the build error and executable error (they are the same) . Somehow, am chagrin to say, I can't account for the change.They both crash now. I wanted to try putting the DLL in with the executable to see if that would work, but the relevant 5 project dlls were gone (??). I had to poach them from an apparent windows directory vc 11 and copy them to the library that couldn't find them. The same error would continue.

                          Present code:
                          main.cpp

                          #include <QCoreApplication>
                          #include <opencv2/core/core.hpp>
                          #include <opencv2/highgui/highgui.hpp>
                          
                          int main() {
                          
                              // read an image
                              cv::Mat image= cv::imread("img.jpg");
                              // create image window named "My Image"
                              cv::namedWindow("My Image");
                              // show the image on window
                              cv::imshow("My Image", image);
                              // wait key for 5000 ms
                              cv::waitKey(5000);
                          
                              return 1;
                          }
                          

                          .pro

                          
                          QT       += core
                          
                          QT       += gui
                          QT       += widgets
                          
                          TARGET = NewOne
                          CONFIG   += console
                          CONFIG   -= app_bundle
                          
                          TEMPLATE = app
                          
                          SOURCES += main.cpp
                          
                          INCLUDEPATH += C:/OpenCV-2.3.1/install/include/
                          
                          LIBS += -LC:\OpenCV-2.3.1\lib\
                              -lopencv_core2411 \
                              -lopencv_highgui2411 \
                              -lopencv_imgproc2411 \
                              -lopencv_features2d2411\
                              -lopencv_calib3d2411
                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #26

                            Then just to be sure: which Qt package are you using ?

                            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
                            0
                            • TechnologistT Offline
                              TechnologistT Offline
                              Technologist
                              wrote on last edited by Technologist
                              #27

                              The version is qt 5.4
                              Using 64 bit os

                              On a few directories I made them the version of the tutorial (OpenCV-2.3.1) to stay on track, but the overall version was 2.4.11 that was downloaded and installed.

                              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