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. Static build for SQL plugin
Forum Updated to NodeBB v4.3 + New Features

Static build for SQL plugin

Scheduled Pinned Locked Moved General and Desktop
69 Posts 3 Posters 41.5k Views 1 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.
  • M Offline
    M Offline
    mbnoimi
    wrote on 24 Sept 2013, 00:14 last edited by
    #47

    I fixed the above issue and built Qt successfully by using the following configurations:

    [code]configure -no-warnings-are-errors -qt-pcre -qt-libpng -ltcg -release -developer-build -static -qt-sql-sqlite -qt-sql-psql -qt-zlib -qt-libjpeg -opengl desktop -nomake examples -nomake tests -I C:/postgresql-9.1.9/src/include -L C:/postgresql-9.1.9/src/interfaces/libpq -I C:/postgresql-9.1.9/src/interfaces/libpq[/code]

    But as soon as I call any SQL class I get linking error although I successfully built Qt and Postgresql by MinGW!
    http://pastebin.com/2e8pqnmM

    I used the following project to test SQL connectivity:

    test.pro
    [code]QT += core gui sql

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

    TARGET = test
    TEMPLATE = app

    SOURCES += main.cpp
    mainwindow.cpp

    HEADERS += mainwindow.h

    FORMS += mainwindow.ui

    QMAKE_LFLAGS += -static -static-libgcc -static-libstdc++ -lpthread

    LIBS += -LC:/postgresql-9.1.9/src/interfaces/libpq -lpq
    [/code]

    main.cpp
    [code]QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
    db.setHostName("192.168.0.74");
    db.setPort(5432);
    db.setDatabaseName("testDB");
    db.setUserName("postgres");
    db.setPassword("pass");
    if (!db.open())
    qDebug() << "Unable to connect!";
    else
    qDebug() << "connected.";[/code]

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mbnoimi
      wrote on 24 Sept 2013, 00:19 last edited by
      #48

      BTW, libpq.a and libpq.dll are exists in in C:\postgresql-9.1.9\src\interfaces\libpq

      1 Reply Last reply
      0
      • R Offline
        R Offline
        raven-worx
        Moderators
        wrote on 24 Sept 2013, 06:21 last edited by
        #49

        i'm not sure, but i t may be that you need to do this in your PRO file:
        LIBS += -LC:/postgresql-9.1.9/src/interfaces/libpq -llibpq

        --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
        If you have a question please use the forum so others can benefit from the solution in the future

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mbnoimi
          wrote on 24 Sept 2013, 08:59 last edited by
          #50

          [quote author="raven-worx" date="1380003684"]i'm not sure, but i t may be that you need to do this in your PRO file:
          LIBS += -LC:/postgresql-9.1.9/src/interfaces/libpq -llibpq[/quote]

          It gives:
          [code]c:/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llibpq
          collect2.exe: error: ld returned 1 exit status
          Makefile.Release:82: recipe for target 'release\test.exe' failed
          mingw32-make[1]: *** [release\test.exe] Error 1
          mingw32-make[1]: Leaving directory 'C:/Users/mbnoimi/Desktop/build-test-Static_PG-Release'
          makefile:34: recipe for target 'release' failed
          mingw32-make: *** [release] Error 2
          01:59:01: The process "C:\mingw48_32\bin\mingw32-make.exe" exited with code 2.
          Error while building/deploying project test (kit: Static PG)
          When executing step 'Make'
          01:59:01: Elapsed time: 00:04.[/code]

          1 Reply Last reply
          0
          • R Offline
            R Offline
            raven-worx
            Moderators
            wrote on 24 Sept 2013, 09:05 last edited by
            #51

            ok i was wrong then.

            According to "this post":http://www.postgresql.org/message-id/Pine.LNX.4.30.0108241344260.677-100000@peter.localdomain you need -lpq, what you already had tried. So it seem this was correct. So the problem needs to be somewhere else.

            --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
            If you have a question please use the forum so others can benefit from the solution in the future

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mbnoimi
              wrote on 24 Sept 2013, 10:11 last edited by
              #52

              [quote author="raven-worx" date="1380013513"]ok i was wrong then.

              According to "this post":http://www.postgresql.org/message-id/Pine.LNX.4.30.0108241344260.677-100000@peter.localdomain you need -lpq, what you already had tried. So it seem this was correct. So the problem needs to be somewhere else.[/quote]

              What do you suggest? I emptied my pockets :)

              1 Reply Last reply
              0
              • M Offline
                M Offline
                mbnoimi
                wrote on 27 Sept 2013, 03:09 last edited by
                #53

                Sorry guys but I'm still stuck with this issue.

                I successfully built Postgresql's client by MinGW and Qt for with static options for enabling Postgresql but I Qt failed in linking the libraries as mentioned in my post https://qt-project.org/forums/viewreply/143908/

                May you give me a hand of help?

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 27 Sept 2013, 07:43 last edited by
                  #54

                  Did you also add
                  @QTPLUGIN += qsqlmysql@
                  to your pro file ?
                  and
                  @Q_IMPORT_PLUGIN( qsqlmysql )@
                  to your main.cpp ?

                  EDIT: corrected macro

                  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
                  • M Offline
                    M Offline
                    mbnoimi
                    wrote on 27 Sept 2013, 10:38 last edited by
                    #55

                    After adding the lines you've mentioned I got this error:
                    [code]..\test\main.cpp:5:17: error: expected constructor, destructor, or type conversion before '(' token
                    QT_IMPORT_PLUGIN( qsqlpsql )[/code]

                    BTW, I never find any *.dll or *.a inside Qt folder where I built it statically!!! so I wonder how these line will link qsqlpsql?

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 27 Sept 2013, 10:58 last edited by
                      #56

                      Did you build Qt with qt-sql-psql ? (Not -plugin-sql-psql)

                      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
                      • M Offline
                        M Offline
                        mbnoimi
                        wrote on 27 Sept 2013, 11:21 last edited by
                        #57

                        [quote author="SGaist" date="1380279497"]Did you build Qt with qt-sql-psql ? (Not -plugin-sql-psql)[/quote]

                        Yes; I built using:
                        [code]configure -no-warnings-are-errors -qt-pcre -qt-libpng -ltcg -release -developer-build -static -qt-sql-sqlite -qt-sql-psql -qt-zlib -qt-libjpeg -opengl desktop -nomake examples -nomake tests -I C:/postgresql-9.1.9/src/include -L C:/postgresql-9.1.9/src/interfaces/libpq -I C:/postgresql-9.1.9/src/interfaces/libpq[/code]

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on 28 Sept 2013, 22:00 last edited by
                          #58

                          Sorry, I made a typo for the import macro... I've corrected the post

                          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
                          • M Offline
                            M Offline
                            mbnoimi
                            wrote on 29 Sept 2013, 00:19 last edited by
                            #59

                            [quote author="SGaist" date="1380405617"]Sorry, I made a typo for the import macro... I've corrected the post[/quote]

                            Thanks for correction. Now Qt gave me a new error message about missing qsqlpsql as following:
                            [code]c:/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lqsqlpsql
                            collect2.exe: error: ld returned 1 exit status
                            Makefile.Release:82: recipe for target 'release\test.exe' failed
                            mingw32-make[1]: *** [release\test.exe] Error 1
                            mingw32-make[1]: Leaving directory 'C:/Users/mbnoimi/Desktop/build-test-Static_PG-Release'
                            makefile:34: recipe for target 'release' failed
                            mingw32-make: *** [release] Error 2
                            17:07:16: The process "C:\mingw48_32\bin\mingw32-make.exe" exited with code 2.
                            Error while building/deploying project test (kit: Static PG)
                            When executing step 'Make'
                            17:07:16: Elapsed time: 00:13.[/code]

                            For fixing this issue I tried to find the missing library but unfortunately I couldn't find it!

                            NOTE: Qt built successfully and it didn't show any error message (by using "the above options":https://qt-project.org/forums/viewreply/144398/)

                            [code]
                            C:\Qt>dir *.a /s /p /w /b
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Bootstrap.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Concurrent.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Core.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Gui.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Network.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5OpenGL.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5OpenGLExtensions.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5PlatformSupport.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5PrintSupport.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Sql.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Test.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Widgets.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libQt5Xml.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\lib\libqtmain.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\accessible\libqtaccessiblewidgets.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\bearer\libqgenericbearer.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\bearer\libqnativewifibearer.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\imageformats\libqico.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\platforms\libqminimal.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\platforms\libqoffscreen.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\platforms\libqwindows.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\plugins\printsupport\libwindowsprintersupport.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\tests\auto\corelib\io\qdir\types\a.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\tests\auto\corelib\io\qdir\types\b.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\tests\auto\corelib\io\qdir\types\c.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\tests\auto\corelib\io\qdir\types\d.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\tests\auto\corelib\io\qdir\types\e.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtbase\tests\auto\corelib\io\qdir\types\f.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtwebkit\WebKitLibraries\libWebCoreSQLite3.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtwebkit\WebKitLibraries\libWebKitSystemInterfaceLion.a
                            C:\Qt\Qt5.1.1-static-sqlite-pgsql\qtwebkit\WebKitLibraries\libWebKitSystemInterfaceMountainLion.a
                            C:\Qt>
                            [/code]

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on 29 Sept 2013, 20:49 last edited by
                              #60

                              You won't have any plugin lib since they are built in Qt's sql library, did you add qsqlpsql in your pro file ?

                              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
                              • M Offline
                                M Offline
                                mbnoimi
                                wrote on 29 Sept 2013, 20:53 last edited by
                                #61

                                [quote author="SGaist" date="1380487767"]You won't have any plugin lib since they are built in Qt's sql library, did you add qsqlpsql in your pro file ?[/quote]

                                test.pro
                                [code]QT += core gui sql

                                greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

                                TARGET = test
                                TEMPLATE = app

                                SOURCES += main.cpp
                                mainwindow.cpp

                                HEADERS += mainwindow.h

                                FORMS += mainwindow.ui

                                QTPLUGIN += qsqlpsql

                                QMAKE_LFLAGS += -static -static-libgcc -static-libstdc++ -lpthread

                                LIBS += -LC:/postgresql-9.1.9/src/interfaces/libpq -lpq
                                [/code]

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  mbnoimi
                                  wrote on 29 Sept 2013, 20:55 last edited by
                                  #62

                                  main.cpp
                                  [code]#include "mainwindow.h"
                                  #include <QApplication>
                                  #include <QtPlugin>

                                  Q_IMPORT_PLUGIN( qsqlpsql )

                                  int main(int argc, char *argv[])
                                  {

                                  QApplication a(argc, argv);
                                  MainWindow w;
                                  w.show();
                                  
                                  return a.exec&#40;&#41;;
                                  

                                  }
                                  [/code]

                                  1 Reply Last reply
                                  0
                                  • S Offline
                                    S Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on 30 Sept 2013, 08:15 last edited by
                                    #63

                                    Just thought that since you have all sql plugins built in you might not need the QTPLUGIN line from the pro file

                                    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
                                    • M Offline
                                      M Offline
                                      mbnoimi
                                      wrote on 3 Oct 2013, 00:51 last edited by
                                      #64

                                      [quote author="SGaist" date="1380528900"]Just thought that since you have all sql plugins built in you might not need the QTPLUGIN line from the pro file[/quote]

                                      Unfortunately it didn't fix the issue and generated ton of errors as shown in full log of build process: http://paste.kde.org/p96ac01e7

                                      I'm really frustrated; The hardest step done (building Postgresql with MinGW) while the supposed easy one delays the success!!!

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on 3 Oct 2013, 07:35 last edited by
                                        #65

                                        Looks like it needs postgresql symbol, you have to add the link information to postgresql

                                        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
                                        • M Offline
                                          M Offline
                                          mbnoimi
                                          wrote on 3 Oct 2013, 09:00 last edited by
                                          #66

                                          [quote author="SGaist" date="1380785713"]Looks like it needs postgresql symbol, you have to add the link information to postgresql[/quote]

                                          How can I do it?

                                          1 Reply Last reply
                                          0

                                          56/69

                                          27 Sept 2013, 10:58

                                          • Login

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