Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. 3rd Party Software
  4. Qt and QGis integration ERROR `__imp__ZN14QgsApplicationC1ERiPPcbRK7QStringS5_'
Forum Update on Monday, May 27th 2025

Qt and QGis integration ERROR `__imp__ZN14QgsApplicationC1ERiPPcbRK7QStringS5_'

Scheduled Pinned Locked Moved Unsolved 3rd Party Software
16 Posts 4 Posters 589 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.
  • A Offline
    A Offline
    Aman55
    wrote on 31 Jan 2025, 05:10 last edited by
    #1

    OS : windows 10 64 bit x64
    Qt Creator 4.11.1
    Based on Qt 5.14.1 (MSVC 2017, 32 bit)
    Qt compiler : MinGW 7.3.0 64 bit for c++
    QGIS : Online (OSGeo4W) installer: many version installed by OSGeo4W installer

    Can any one help me to resolve this issue?

    Facing error

    C:\Users\amanjaiswal\Documents\untitled7\main.cpp:7: error: undefined reference to __imp__ZN14QgsApplicationC1ERiPPcbRK7QStringS5_' C:\Users\amanjaiswal\Documents\untitled7\main.cpp:8: error: undefined reference to __imp__ZN14QgsApplication13setPrefixPathERK7QStringb'
    C:\Users\amanjaiswal\Documents\untitled7\main.cpp:11: error: undefined reference to __imp__ZN14QgsApplication8exitQgisEv' C:\Users\amanjaiswal\Documents\untitled7\main.cpp:7: error: undefined reference to __imp__ZN14QgsApplicationD1Ev'
    C:\Users\amanjaiswal\Documents\untitled7\main.cpp:7: error: undefined reference to __imp__ZN14QgsApplicationD1Ev' C:\OSGeo4W\apps\qgis-ltr-dev\include\qgis.h:405: error: undefined reference to __imp__ZN4Qgis16staticMetaObjectE'
    :-1: error: collect2.exe: error: ld returned 1 exit status

    Screenshot (1).png Screenshot (2).png Screenshot (3).png Screenshot (4).png

    1 Reply Last reply
    0
    • C Offline
      C Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on 31 Jan 2025, 05:17 last edited by
      #2

      You can not mix MSVC and MinGW c++ libraries - if you want to use MinGW/g++ then you also have to compile OSGeo with MinGW which I doubt you have.

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      1 Reply Last reply
      3
      • A Offline
        A Offline
        Aman55
        wrote on 31 Jan 2025, 05:39 last edited by Aman55
        #3

        Can you guide to compile OSGeo with MinGW? @Christian-Ehrlicher . As in OSGeo installer i don't get option to choose MinGw or MSVC.

        J 1 Reply Last reply 31 Jan 2025, 06:12
        0
        • A Aman55
          31 Jan 2025, 05:39

          Can you guide to compile OSGeo with MinGW? @Christian-Ehrlicher . As in OSGeo installer i don't get option to choose MinGw or MSVC.

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 31 Jan 2025, 06:12 last edited by
          #4

          @Aman55 said in Qt and QGis integration ERROR `__imp__ZN14QgsApplicationC1ERiPPcbRK7QStringS5_':

          Can you guide to compile OSGeo with MinGW?

          Please refer to their documentation: https://github.com/qgis/QGIS/blob/master/INSTALL.md

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • A Offline
            A Offline
            Aman55
            wrote on 31 Jan 2025, 07:59 last edited by Aman55
            #5

            I have downloaded visual studio 2017 and I updated my compiler with Qt Compiler MSVC 2017. got an error
            C:\OSGeo4W\apps\qgis-ltr-dev\include\qgssettingsentry.h:31: error: C7525: inline variables require at least '/std:c++17' @Christian-Ehrlicher @jsulm

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Aman55
              wrote on 31 Jan 2025, 08:11 last edited by
              #6

              update c++11 to c++17 and build successfully . but 13:39:44: The program has unexpectedly finished. when i run in debug mode it giving ![alt Screenshot (6).png

              J 1 Reply Last reply 31 Jan 2025, 08:18
              0
              • A Aman55
                31 Jan 2025, 08:11

                update c++11 to c++17 and build successfully . but 13:39:44: The program has unexpectedly finished. when i run in debug mode it giving ![alt Screenshot (6).png

                J Offline
                J Offline
                jsulm
                Lifetime Qt Champion
                wrote on 31 Jan 2025, 08:18 last edited by
                #7

                @Aman55 Do you have the debug versions of the QGIS libs?

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                A 1 Reply Last reply 31 Jan 2025, 08:23
                0
                • J jsulm
                  31 Jan 2025, 08:18

                  @Aman55 Do you have the debug versions of the QGIS libs?

                  A Offline
                  A Offline
                  Aman55
                  wrote on 31 Jan 2025, 08:23 last edited by
                  #8

                  @jsulm can't say yes. if it comes with download only.

                  J 1 Reply Last reply 31 Jan 2025, 08:28
                  0
                  • A Aman55
                    31 Jan 2025, 08:23

                    @jsulm can't say yes. if it comes with download only.

                    J Offline
                    J Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on 31 Jan 2025, 08:28 last edited by
                    #9

                    @Aman55 said in Qt and QGis integration ERROR `__imp__ZN14QgsApplicationC1ERiPPcbRK7QStringS5_':

                    can't say yes. if it comes with download only.

                    You can simply check what DLLs where installed.
                    Does release build work?

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    A 1 Reply Last reply 31 Jan 2025, 08:45
                    0
                    • J jsulm
                      31 Jan 2025, 08:28

                      @Aman55 said in Qt and QGis integration ERROR `__imp__ZN14QgsApplicationC1ERiPPcbRK7QStringS5_':

                      can't say yes. if it comes with download only.

                      You can simply check what DLLs where installed.
                      Does release build work?

                      A Offline
                      A Offline
                      Aman55
                      wrote on 31 Jan 2025, 08:45 last edited by
                      #10

                      @jsulm Yes release build work for the above main.cpp code. currently used to load shp file and gives error
                      C:\OSGeo4W\apps\qgis-ltr-dev\include\qgsabstractgeometry.h:596: error: C2065: 'M_PI': undeclared identifier
                      C:\OSGeo4W\apps\qgis-ltr-dev\include\qgsvector.h:175: error: C2065: 'M_PI': undeclared identifier
                      C:\OSGeo4W\apps\qgis-ltr-dev\include\qgsgeometry.h:2757: error: C2065: 'M_PI': undeclared identifier

                      // main.cpp
                      int main(int argc, char *argv[]) {
                          QApplication a(argc, argv);
                          // 1. Initialize QGIS
                          QgsApplication::setPrefixPath("C:/OSGeo4W64/apps/qgis-ltr-dev", true); // Replace with your QGIS installation path
                          QgsApplication::init();
                      
                          // 2. Specify the path to your SHP file
                          QString shpFilePath = ":/gis_osm_barriers_07_1.shp"; // Replace with the actual path
                      
                          // 3. Check if the file exists
                          QFileInfo fileInfo(shpFilePath);
                          if (!fileInfo.exists()) {
                              qDebug() << "Error: Shapefile not found at" << shpFilePath;
                              QgsApplication::exit();
                              return 1;
                          }
                      
                      
                          // 4. Create a QgsVectorLayer
                          QgsVectorLayer *vlayer = new QgsVectorLayer(shpFilePath, "shapefile_layer", "ogr"); // "ogr" is the data provider
                      
                          // 5. Check if the layer is valid
                          if (!vlayer->isValid()) {
                              qDebug() << "Error: Could not load shapefile:" << vlayer->error().message();
                              delete vlayer;
                              QgsApplication::exit();
                              return 1;
                          }
                      
                          // 6.  Accessing Feature Information (Example)
                          qDebug() << "Number of features:" << vlayer->featureCount();
                      
                      
                          // 7. Clean up
                          delete vlayer;  // Important to prevent memory leaks
                          QgsApplication::exit();
                      
                          return 0;
                      }
                      
                      J 1 Reply Last reply 31 Jan 2025, 08:53
                      0
                      • A Aman55
                        31 Jan 2025, 08:45

                        @jsulm Yes release build work for the above main.cpp code. currently used to load shp file and gives error
                        C:\OSGeo4W\apps\qgis-ltr-dev\include\qgsabstractgeometry.h:596: error: C2065: 'M_PI': undeclared identifier
                        C:\OSGeo4W\apps\qgis-ltr-dev\include\qgsvector.h:175: error: C2065: 'M_PI': undeclared identifier
                        C:\OSGeo4W\apps\qgis-ltr-dev\include\qgsgeometry.h:2757: error: C2065: 'M_PI': undeclared identifier

                        // main.cpp
                        int main(int argc, char *argv[]) {
                            QApplication a(argc, argv);
                            // 1. Initialize QGIS
                            QgsApplication::setPrefixPath("C:/OSGeo4W64/apps/qgis-ltr-dev", true); // Replace with your QGIS installation path
                            QgsApplication::init();
                        
                            // 2. Specify the path to your SHP file
                            QString shpFilePath = ":/gis_osm_barriers_07_1.shp"; // Replace with the actual path
                        
                            // 3. Check if the file exists
                            QFileInfo fileInfo(shpFilePath);
                            if (!fileInfo.exists()) {
                                qDebug() << "Error: Shapefile not found at" << shpFilePath;
                                QgsApplication::exit();
                                return 1;
                            }
                        
                        
                            // 4. Create a QgsVectorLayer
                            QgsVectorLayer *vlayer = new QgsVectorLayer(shpFilePath, "shapefile_layer", "ogr"); // "ogr" is the data provider
                        
                            // 5. Check if the layer is valid
                            if (!vlayer->isValid()) {
                                qDebug() << "Error: Could not load shapefile:" << vlayer->error().message();
                                delete vlayer;
                                QgsApplication::exit();
                                return 1;
                            }
                        
                            // 6.  Accessing Feature Information (Example)
                            qDebug() << "Number of features:" << vlayer->featureCount();
                        
                        
                            // 7. Clean up
                            delete vlayer;  // Important to prevent memory leaks
                            QgsApplication::exit();
                        
                            return 0;
                        }
                        
                        J Offline
                        J Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on 31 Jan 2025, 08:53 last edited by
                        #11

                        @Aman55 Then you probably only have the release versions of these libs which can't be mixed with a debug build.

                        "Yes release build work for the above main.cpp code. currently used to load shp file and gives error" - I don't get it. How can it work if you get compiler errors? What is the very first error?

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        1
                        • A Offline
                          A Offline
                          Aman55
                          wrote on 31 Jan 2025, 09:00 last edited by Aman55
                          #12

                          @jsulm Previously i have only use qgsapplication header as

                          #include <QApplication>
                          #include <qgsapplication.h>
                          
                          
                          int main(int argc, char *argv[])
                          {
                            QgsApplication app(argc, argv, true);
                            QgsApplication::setPrefixPath("C:/OSGeo4W64/apps/qgis-ltr-dev", true);
                          
                            int retval = app.exec();
                          //  QgsApplication::exitQgis();
                            return retval;
                          }
                          
                          

                          so there is no need for other headerfiles. then it build successfully. Now i am reading shp file where it does not locate M_PI Macro

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Aman55
                            wrote on 31 Jan 2025, 09:23 last edited by Aman55
                            #13

                            it build successfully but giving some runtime error unable to pinpoint as it only gives The program has unexpectedly finished. After including #include <qgsapplication.h>

                            JonBJ 1 Reply Last reply 31 Jan 2025, 11:43
                            0
                            • A Aman55
                              31 Jan 2025, 09:23

                              it build successfully but giving some runtime error unable to pinpoint as it only gives The program has unexpectedly finished. After including #include <qgsapplication.h>

                              JonBJ Online
                              JonBJ Online
                              JonB
                              wrote on 31 Jan 2025, 11:43 last edited by
                              #14

                              @Aman55 So far as I can see you have not tried to show the stack trace from a debugger when it crashes.

                              A 1 Reply Last reply 1 Feb 2025, 04:41
                              0
                              • JonBJ JonB
                                31 Jan 2025, 11:43

                                @Aman55 So far as I can see you have not tried to show the stack trace from a debugger when it crashes.

                                A Offline
                                A Offline
                                Aman55
                                wrote on 1 Feb 2025, 04:41 last edited by Aman55 2 Jan 2025, 04:43
                                #15

                                @JonB In debug mode i got error of CDB process terminatedScreenshot (7).png

                                JonBJ 1 Reply Last reply 1 Feb 2025, 09:53
                                0
                                • A Aman55
                                  1 Feb 2025, 04:41

                                  @JonB In debug mode i got error of CDB process terminatedScreenshot (7).png

                                  JonBJ Online
                                  JonBJ Online
                                  JonB
                                  wrote on 1 Feb 2025, 09:53 last edited by
                                  #16

                                  @Aman55 Yes, you need to look at the stack trace pane in the debugger when that happens, so that you know where it comes from.

                                  1 Reply Last reply
                                  0

                                  1/16

                                  31 Jan 2025, 05:10

                                  • Login

                                  • Login or register to search.
                                  1 out of 16
                                  • First post
                                    1/16
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • Users
                                  • Groups
                                  • Search
                                  • Get Qt Extensions
                                  • Unsolved