# programowanie w QT

## Gvader

Nie bardzo wiedziałem gdzie wrzucić ten topic, więc wylądował turaj.

Zaczynam swoją przygodę z programowaniem w QT. Mam programik z bazą danych na SQLite. Przy uruchamianiu programu dostaję komunikat:

```
QSqlDatabase: QSQLITE driver not loaded

QSqlDatabase: available drivers:

```

Qt4 skompilowane jest ze wszystkimi możliwymi flagami dotyczącymi SQL-a. Program kompuje się bez żadnych błędów. Testowałem go również pod Ubuntu, gdzie działa bez najmniejszych problemów, a gdy specjalnie wprowadze błędną nazwe modułu sterującego po "availble drivers:" wyświetli kilka nazw. Najszybciej nasuwającym mi się błędem jest w jakiś sposób źle zbudowana biblioteka, ale jak powiedziałem jestem nowy w te klocki i nie bardzo wiem gdzie szukać możliwych przyczyn takowego problemu. Będę wdzięczny za każdą pomoc  :Smile: 

----------

## lsdudi

poka flagi miszczu i które QT 4,3 ?

----------

## Gvader

Wersja Qt i flagi:

```
komputerek ~ # equery uses qt

[ Searching for packages matching qt... ]

[ Colour Code : set unset ]

[ Legend : Left column  (U) - USE flags from make.conf              ]

[        : Right column (I) - USE flags packages was installed with ]

[ Found these USE variables for x11-libs/qt-3.3.8-r4 ]

 U I

 + + cups     : Add support for CUPS (Common Unix Printing System)

 - - debug    : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml .

 - + doc      : Adds extra documentation (API, Javadoc, etc)

 - + examples : Install example source code

 - - firebird : Adds support for the Firebird relational database

 + + gif      : Adds GIF image support

 - - immqt    : Enable binary incompatible version of immodule for Qt

 - - immqt-bc : Enable binary compatible version of immodule for Qt

 + + ipv6     : Adds support for IP version 6

 - + mysql    : Adds mySQL Database support

 - + nas      : Adds support for network audio sound

 - + nis      : Support for NIS/YP services

 - + odbc     : Adds ODBC Support (Open DataBase Connectivity)

 + + opengl   : Adds support for OpenGL (3D graphics)

 - - pertty   : <unknown>

 - + postgres : Adds support for the postgresql database

 - - qt-copy  : <unknown>

 - + sqlite   : Adds support for sqlite - embedded sql database

 - + xinerama : Add support for the xinerama X11 extension, which allows you to stretch your display across multiple monitors

[ Found these USE variables for x11-libs/qt-4.3.2 ]

 U I

 - + accessibility       : Adds support for accessibility (eg 'at-spi' library)

 + + cups                : Add support for CUPS (Common Unix Printing System)

 - - dbus                : Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)

 - - debug               : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml .

 - + doc                 : Adds extra documentation (API, Javadoc, etc)

 - + examples            : Install example source code

 - - firebird            : Adds support for the Firebird relational database

 + + gif                 : Adds GIF image support

 - + glib                : Enable glib eventloop support

 - - input_devices_wacom : <unknown>

 + + jpeg                : Adds JPEG image support

 - - mng                 : Adds support for libmng (MNG images)

 - + mysql               : Adds mySQL Database support

 - + nas                 : Adds support for network audio sound

 - + nis                 : Support for NIS/YP services

 - + odbc                : Adds ODBC Support (Open DataBase Connectivity)

 + + opengl              : Adds support for OpenGL (3D graphics)

 - + pch                 : Enable precompiled header support for faster compilation times (gcc >3.4 only)

 + + png                 : Adds support for libpng (PNG images)

 - + postgres            : Adds support for the postgresql database

 + + qt3support          : Enable the Qt3Support libraries for Qt4

 - + sqlite              : Adds support for sqlite - embedded sql database

 - + sqlite3             : Adds support for sqlite3 - embedded sql database

 + + ssl                 : Adds support for Secure Socket Layer connections

 + + tiff                : Adds support for the tiff image format

 - + xinerama            : Add support for the xinerama X11 extension, which allows you to stretch your display across multiple monitors

 + + zlib                : Adds support for zlib (de)compression
```

Last edited by Gvader on Wed Dec 05, 2007 2:07 pm; edited 1 time in total

----------

## Bako

a tak nieco z innej beczki: 

masz ikonki w toolbarze pod designerem i assistantem? Widzialem na angielskim forum, ze pare osob mialo z tym problem, nawet na bugs'illi jest watek, ale cicho w nim na ten temat. Na polskim forum tez widzialem ten problem i rozwiazanie z powrotem do qt 4.2 mnie nie fascynuje.

ps. pozdrawiam miejscowego  :Smile: 

----------

## Gvader

Co do ikonek to w designerze są. Osobiscie nie używam designera więc ten problem mnie nie dotyczy  :Smile:  Co do QT to myślalem, że może coś jest nie tak pod względęm zgodności wersji między mną a kumplem który pisze razem ze mną ten program, ale wersje mamy te same. Pod Ubuntu również mam wersje 4.3.2 i wszystko działa ok.

----------

## yaq

Nie pamietam dokladnie jak to bylo w przykladach (i nie mam czasu merge'owac). Sprwawdz czy w 

```
$ ldd plik.wyk
```

 jest biblioteka libQtSql.so i czy w pliku projektu (*.pro) jest napewno napisane cos ala:

```
QT += sql

```

----------

## FuKu

moze po prostu rekompiluj qt ?

```
 + + qt3support          : Enable the Qt3Support libraries for Qt4

 - + sqlite              : Adds support for sqlite - embedded sql database

 - + sqlite3             : Adds support for sqlite3 - embedded sql database 
```

nie znam zapisu z equery :>, ale czy mi sie wydaje ? ze qt jest skompilowane bez flagi sqllite ?

----------

## yaq

```
[ Legend : Left column  (U) - USE flags from make.conf              ]

[        : Right column (I) - USE flags packages was installed with ] 
```

Jest skompilowane "z", ale bez wpisywania flagi na stale:) jak ktos lubi recznie:)

----------

## Gvader

 *yaq wrote:*   

> Nie pamietam dokladnie jak to bylo w przykladach (i nie mam czasu merge'owac). Sprwawdz czy w 
> 
> ```
> $ ldd plik.wyk
> ```
> ...

 

Wrzucam wszystko co mi ldd wyświetloło:

```
 linux-gate.so.1 =>  (0xb7fcc000)

        libQtSql.so.4 => /usr/lib/qt4/libQtSql.so.4 (0xb7f7e000)

        libQtGui.so.4 => /usr/lib/qt4/libQtGui.so.4 (0xb77db000)

        libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb77c4000)

        libXt.so.6 => /usr/lib/libXt.so.6 (0xb7770000)

        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb774e000)

        libSM.so.6 => /usr/lib/libSM.so.6 (0xb7745000)

        libICE.so.6 => /usr/lib/libICE.so.6 (0xb772d000)

        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7725000)

        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb771f000)

        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb771a000)

        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7710000)

        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb770c000)

        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb767f000)

        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb764d000)

        libXext.so.6 => /usr/lib/libXext.so.6 (0xb763d000)

        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7544000)

        libQtCore.so.4 => /usr/lib/qt4/libQtCore.so.4 (0xb73b0000)

        libz.so.1 => /lib/libz.so.1 (0xb739b000)

        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7395000)

        librt.so.1 => /lib/librt.so.1 (0xb738c000)

        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb72be000)

        libdl.so.2 => /lib/libdl.so.2 (0xb72ba000)

        libpthread.so.0 => /lib/libpthread.so.0 (0xb72a3000)

        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb71c2000)

        libm.so.6 => /lib/libm.so.6 (0xb719c000)

        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb7191000)

        libc.so.6 => /lib/libc.so.6 (0xb7068000)

        libXau.so.6 => /usr/lib/libXau.so.6 (0xb7065000)

        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb703c000)

        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7036000)

        /lib/ld-linux.so.2 (0xb7fcd000)

```

Jak widać biblioteka jest podlinkowana, poza_tym nie znam się na tyle, ale czy gdyby jej nie było to program nie wywaliłby błędu podczas kompilacji??

Co do QT+=sgl to jest wpisane, bo osobiście wpisywałem przed kompilacją.

Arfrever: Ortografia

----------

## joi_

spróbuj może zrobić revdep-rebuild?

a jak nie pomoże to popatrz może na ldd /usr/lib/qt4/plugins/sqldrivers/libqsqlite.so itp

----------

## Gvader

Cóż, co do revdep-rebuild:

```
Assigning files to ebuilds... Nothing to rebuild
```

A sprawdzenie ldd:

```
lukasz@komputerek ~ $ ldd /usr/lib/qt4/plugins/sqldrivers/libqsqlite.so

        linux-gate.so.1 =>  (0xb7f08000)

        libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb7e78000)

        libQtSql.so.4 => /usr/lib/qt4/libQtSql.so.4 (0xb7e41000)

        libQtCore.so.4 => /usr/lib/qt4/libQtCore.so.4 (0xb7cad000)

        libz.so.1 => /lib/libz.so.1 (0xb7c98000)

        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7c92000)

        librt.so.1 => /lib/librt.so.1 (0xb7c89000)

        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7bbb000)

        libpthread.so.0 => /lib/libpthread.so.0 (0xb7ba4000)

        libdl.so.2 => /lib/libdl.so.2 (0xb7ba0000)

        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7abf000)

        libm.so.6 => /lib/libm.so.6 (0xb7a99000)

        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb7a8e000)

        libc.so.6 => /lib/libc.so.6 (0xb7965000)

        /lib/ld-linux.so.2 (0x80000000)

```

Wygląda na to, że jak na_razie wszystko jest OK. Tylko nie wiadomo dlaczego nie działa tak jak powinno.

Arfrever: Ortografia

----------

## joi_

no to strace ./twojprogram i szukaj errorów przy wywoływaniu dlopen

----------

