На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Qt-4.3.1(win32) PostgreSQL-8.2(win32) , ошибка создания драйвера или плаги для использования PostgreSQL в Йе 4
    Добрый день! Начал изучать Qt версия 4.3.1, нашел описание в сети как собрать Qt с поддержкой PostgreSql
    да вот только ниче не получается
    c:\qt\4.3.1\configure -qt-sql-psql или
    c:\qt\4.3.1\configure -plugin-sql-psql
    заголовочные файлы а переменной path прописаны
    помогите может у конить получалось, сам сообразить не могу от чего оно не хочет собираться.
      папку с заголовочными файлами нужно задавать в ключе "-I" программы configure.
          спасибо!!! :huh: я даже не подумал что под таким топиком моя тема находится.
            Да уж... бывает у людей талантище "говорящие за себя" названия давать :lol:.
              Цитата archimed7592 @
              "говорящие за себя" названия давать

              принято
                :D У меня получилось собрать без проблем,

                configure -I "c:/pgsql/include" -L "c:/pgsql/lib" -l "pq" -plugin-sql-psql

                только как plugin, вопрос а как теперь компилировать сам проэкт ?

                Пишет ощибки

                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:30:23: qsqlerror.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:31:23: qsqlfield.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:32:23: qsqlindex.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:33:24: qsqlrecord.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:34:23: qsqlquery.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:37:22: libpq-fe.h: No such file or directory
                In file included from main.cpp:3:
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `void QPSQLDriverPrivate::appendT
                ables(QStringList&, QSqlQuery&, QChar)':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:96: error: invalid use of undefined type `struct QSql
                Query'
                C:/Qt/4.1.2/include/QtSql/../../src/sql/kernel/qsqldatabase.h:39: error: forward declaration of `str
                uct QSqlQuery'
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:97: error: invalid use of undefined type `struct QSql
                Query'
                C:/Qt/4.1.2/include/QtSql/../../src/sql/kernel/qsqldatabase.h:39: error: forward declaration of `str
                uct QSqlQuery'
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:98: error: invalid use of undefined type `struct QSql
                Query'
                C:/Qt/4.1.2/include/QtSql/../../src/sql/kernel/qsqldatabase.h:39: error: forward declaration of `str
                uct QSqlQuery'
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:100: error: invalid use of undefined type `struct QSq
                lQuery'
                C:/Qt/4.1.2/include/QtSql/../../src/sql/kernel/qsqldatabase.h:39: error: forward declaration of `str
                uct QSqlQuery'
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:102: error: invalid use of undefined type `struct QSq
                lQuery'
                C:/Qt/4.1.2/include/QtSql/../../src/sql/kernel/qsqldatabase.h:39: error: forward declaration of `str
                uct QSqlQuery'
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: At global scope:
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:119: error: `struct QSqlError::ErrorType' has not bee
                n declared
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:121: error: ISO C++ forbids declaration of `type' wit
                h no type
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In function `QSqlError qMakeError(const QString&, in
                t, const QPSQLDriverPrivate*)':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:121: error: return type `struct QSqlError' is incompl
                ete
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:122: error: `PQerrorMessage' undeclared (first use th
                is function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:122: error: (Each undeclared identifier is reported o
                nly once for each function it appears in.)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:124: error: invalid use of undefined type `struct QSq
                lError'
                C:/Qt/4.1.2/include/QtSql/../../src/sql/kernel/qsqldatabase.h:35: error: forward declaration of `str
                uct QSqlError'
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `bool QPSQLResultPrivate::process
                Results()':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:132: error: `PQresultStatus' undeclared (first use th
                is function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:133: error: `PGRES_TUPLES_OK' undeclared (first use t
                his function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:136: error: `PQntuples' undeclared (first use this fu
                nction)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:138: error: `PGRES_COMMAND_OK' undeclared (first use
                this function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:145: error: incomplete type `QSqlError' used in neste
                d name specifier
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `void QPSQLResult::cleanup()':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:216: error: `PQclear' undeclared (first use this func
                tion)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual bool QPSQLResult::fetchL
                ast()':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:244: error: `PQntuples' undeclared (first use this fu
                nction)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual QVariant QPSQLResult::da
                ta(int)':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:249: error: `PQnfields' undeclared (first use this fu
                nction)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:253: error: `PQftype' undeclared (first use this func
                tion)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:255: error: `PQgetvalue' undeclared (first use this f
                unction)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:256: error: `PQgetisnull' undeclared (first use this
                function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:306: error: `PQunescapeBytea' undeclared (first use t
                his function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual bool QPSQLResult::isNull
                (int)':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:320: error: `PQgetvalue' undeclared (first use this f
                unction)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:321: error: `PQgetisnull' undeclared (first use this
                function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual bool QPSQLResult::reset(
                const QString&)':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:333: error: `PQexec' undeclared (first use this funct
                ion)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual int QPSQLResult::numRows
                Affected()':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:344: error: `PQcmdTuples' undeclared (first use this
                function)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual QVariant QPSQLResult::la
                stInsertId() const':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:350: error: `Oid' undeclared (first use this function
                )
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:350: error: expected `;' before "id"
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:351: error: `id' undeclared (first use this function)

                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:351: error: `InvalidOid' undeclared (first use this f
                unction)
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp: In member function `virtual QSqlRecord QPSQLResult::
                record() const':
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:358: error: return type `struct QSqlRecord' is incomp
                lete
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:359: error: aggregate `QSqlRecord info' has incomplet
                e type and cannot be defined
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:361: confused by earlier errors, bailing out
                mingw32-make[1]: *** [debug\main.o] Error 1
                mingw32-make[1]: Leaving directory `C:/test/pgsql'
                mingw32-make: *** [debug] Error 2

                может кто подскажет что не так и почему компилятор не находит
                файлы:

                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:30:23: qsqlerror.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:31:23: qsqlfield.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:32:23: qsqlindex.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:33:24: qsqlrecord.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:34:23: qsqlquery.h: No such file or directory
                c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.cpp:37:22: libpq-fe.h: No such file or directory

                В путях прописаны.

                А вот таких фалов в QT несколько и причем разного размера, какие из низ те самые ???
                qsqlerror.h:
                qsqlfield.h:
                qsqlindex.h:
                qsqlrecord.h:
                qsqlquery.h:
                  В .pro напиши
                  ExpandedWrap disabled
                    QT += sql


                  Добавлено
                  Подробнее здесь.
                    Написал не получилось, смотрю доку ниче не могу понять. Можете добрые люди подсказать ???
                      Цитата gorec @
                      вопрос а как теперь компилировать сам проэкт ?

                      Извини, а почему во время компилирования твоего проекта пишутся ошибки на Qt'шные модули? Ты ничё не путаешь?

                      Цитата gorec @
                      Написал не получилось,

                      А после исправления .pro qmake заново вызывался?
                        да вызывал. насчет модулей незнаю. еще вылезала ошибка типа функция объявлена как статическая и нужно выполнить dllimport что в этом духе.

                        qsqlerror.h:
                        qsqlfield.h:
                        qsqlindex.h:
                        qsqlrecord.h:
                        qsqlquery.h:

                        Я эти фалы поискал по директории QT и нашел в разных папках:
                        c:\qt\4.1.2\Qt\include
                        c:\qt\4.1.2\QtSql\include
                        c:\4.1.2\src\sql\kernel

                        и разного размера.

                        Добавлено
                        Вот что еще выдает

                        tmp\moc\debug_shared\moc_qsql_psql.cpp
                        tmp\moc\debug_shared\moc_qsql_psql.cpp:36: error: definition of static data
                        member 'QPSQLDriver::staticMetaObject' of dllimport'd class.
                          Цитата gorec @
                          а вызывал. насчет модулей незнаю.

                          Ну ты qmake из какой папки вызываешь?


                          Цитата gorec @
                          еще вылезала ошибка типа функция объявлена как статическая и нужно выполнить dllimport что в этом духе.

                          У тебя gcc/g++ v-3.4.2? Или unstable/technology preview? (узнать можно написав в консоли "gcc -v")

                          Цитата gorec @
                          Я эти фалы поискал по директории QT и нашел в разных папках:

                          Ещё раз: эти файлы будут удачно находиться компилятором в случае добавления в .pro строки QT += sql.
                            C:\test\pgsql>gcc -v
                            Reading specs from c:/mingw/bin/../lib/gcc/mingw32/3.4.2/specs
                            Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=min
                            gw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --dis
                            able-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --w
                            ithout-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz
                            ation --enable-libstdcxx-debug
                            Thread model: win32
                            gcc version 3.4.2 (mingw-special)


                            c:\test\pgsql

                            qmake -project
                            qmake
                            make

                            Добавлено
                            #include <QtSql/QtSql>
                            #include <QMessageBox>
                            #include "c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.h"


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

                            QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
                            db.setHostName("localhost");
                            db.setDatabaseName("template1");
                            db.setUserName("pgsql");
                            db.setPassword("");

                            if (db.open())
                            {
                            QMessageBox::information(0,"Connect","connect OK",QMessageBox::Cancel,0);
                            }
                            else { }

                            return 0;
                            }

                            вот сам код.
                              после того как в .pro поставил QT +=sql
                              qsqlerror.h:
                              qsqlfield.h:
                              qsqlindex.h:
                              qsqlrecord.h:
                              qsqlquery.h:

                              не запрашивает.

                              осталось dllimport
                                Цитата gorec @
                                #include "c:/qt/4.1.2/src/sql/drivers/psql/qsql_psql.h"

                                Попробуй закоментировать. По моему src предназначен только для сборки самой QT.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0416 ]   [ 16 queries used ]   [ Generated: 2.05.24, 16:25 GMT ]