hab gerade versucht das QODBC Plugin zu bauen (lenny 64 bit) die unixODBC und -devel sind installiert.
Also lt. Doku sollte es ja wie folgt funtionieren:
It is recommended that you use unixODBC. You can find the latest version and ODBC drivers at http://www.unixodbc.org. You need the unixODBC header files and shared libraries.
Tell qmake where to find the unixODBC header files and shared libraries (here it is assumed that unixODBC is installed in /usr/local/unixODBC) and run make:
cd $QTDIR/src/plugins/sqldrivers/odbc
qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
Hab ich auch so gemacht....aber:
Das qmake meckert folgendes:
/opt/qtsdk-2009.04/qt/src/plugins/sqldrivers/odbc$ qmake "INCLUDEPATH+=/usr/include" "LIBS+=-L/usr/lib64/odbc -lodbc"
qpluginbase.pri:10: Unknown replace function: qtLibraryTarget
Failure to open file: /opt/qtsdk-2009.04/qt/src/plugins/sqldrivers/odbc/Makefile
Das makefile existiert.
Hier das Ergebnis des make:
usr:/opt/qtsdk-2009.04/qt/src/plugins/sqldrivers/odbc# ls -la
total 28
drwxr-xr-x 2 root root 4096 Nov 30 12:51 .
drwxr-xr-x 11 root root 4096 Nov 11 13:01 ..
-rwxrwxrwx 1 root root 4471 Nov 30 12:55 Makefile
-rw-r--r-- 1 root root 199 Sep 29 13:01 README
-rw-r--r-- 1 root root 2791 Sep 29 13:01 main.cpp
-rw-r--r-- 1 root root 422 Sep 29 13:01 odbc.pro
usr:/opt/qtsdk-2009.04/qt/src/plugins/sqldrivers/odbc# make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -fPIC -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_PLUGIN -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include -I/usr/include/qt3 -o main.o main.cpp
In file included from main.cpp:44:
../../../sql/drivers/odbc/qsql_odbc.h:45:30: error: QtSql/qsqldriver.h: No such file or directory
../../../sql/drivers/odbc/qsql_odbc.h:46:30: error: QtSql/qsqlresult.h: No such file or directory
In file included from main.cpp:44:
../../../sql/drivers/odbc/qsql_odbc.h:84: error: 'QT_BEGIN_HEADER' does not name a type
../../../sql/drivers/odbc/qsql_odbc.h:94: error: expected class-name before '{' token
../../../sql/drivers/odbc/qsql_odbc.h:115: error: 'QSqlRecord' does not name a type
../../../sql/drivers/odbc/qsql_odbc.h:120: error: ISO C++ forbids declaration of 'QODBCPrivate' with no type
../../../sql/drivers/odbc/qsql_odbc.h:120: error: expected ';' before '*' token
../../../sql/drivers/odbc/qsql_odbc.h:124: error: invalid use of incomplete type 'struct QSqlDriver'
/usr/include/qt3/qsqldriverplugin.h:52: error: forward declaration of 'struct QSqlDriver'
../../../sql/drivers/odbc/qsql_odbc.h:130: error: 'DriverFeature' has not been declared
../../../sql/drivers/odbc/qsql_odbc.h:132: error: ISO C++ forbids declaration of 'QSqlResult' with no type
../../../sql/drivers/odbc/qsql_odbc.h:132: error: expected ';' before '*' token
../../../sql/drivers/odbc/qsql_odbc.h:133: error: 'QSql' has not been declared
../../../sql/drivers/odbc/qsql_odbc.h:134: error: 'QSqlRecord' does not name a type
../../../sql/drivers/odbc/qsql_odbc.h:135: error: 'QSqlIndex' does not name a type
../../../sql/drivers/odbc/qsql_odbc.h:137: error: expected ',' or '...' before '&' token
../../../sql/drivers/odbc/qsql_odbc.h:138: error: ISO C++ forbids declaration of 'QSqlField' with no type
../../../sql/drivers/odbc/qsql_odbc.h:146: error: 'IdentifierType' has not been declared
../../../sql/drivers/odbc/qsql_odbc.h:160: error: 'QT_END_NAMESPACE' does not name a type
main.cpp:57: error: 'QODBCDriverPlugin' has not been declared
main.cpp:57: error: ISO C++ forbids declaration of 'QODBCDriverPlugin' with no type
main.cpp: In function 'int QODBCDriverPlugin()':
main.cpp:58: error: only constructors take base initializers
main.cpp: At global scope:
main.cpp:62: error: 'QODBCDriverPlugin' is not a class or namespace
main.cpp: In function 'QSqlDriver* create(const QString&)':
main.cpp:64: error: 'QLatin1String' was not declared in this scope
main.cpp:66: error: cannot convert 'QODBCDriver*' to 'QSqlDriver*' in return
main.cpp: At global scope:
main.cpp:71: error: 'QODBCDriverPlugin' is not a class or namespace
main.cpp:71: error: non-member function 'QStringList keys()' cannot have cv-qualifier
main.cpp: In function 'QStringList keys()':
main.cpp:74: error: 'QLatin1String' was not declared in this scope
main.cpp: At global scope:
main.cpp:79: error: expected constructor, destructor, or type conversion before '(' token
make: *** [main.o] Error 1
apt-get install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
Das + bedeutet ja nur das vorherige Einträge beibehalten werden. Also eig. kann es daran net liegen.
Ausserdem siehe txt in der doku.... daher hab ich das alles.
Fällt dir was auf? Richtig, includes und mkspecs zeigen auf die deiner qt3-Installation.
Das /opt/qtsdk-2009.04/ deutet aber darauf hin, dass es bitte ein qt4 sein sollte.
Setz mal deine Umgebung korrekt auf (am wichtigsten ein korrektes QTDIR), dann schau mal weiter.
Außerdem nehme ich nicht an, dass dein libodbc.so in /usr/lib64/odbc/ liegt, sondern direkt in /usr/lib64. Lass dazu einfach mal das "-L/usr/lib64/odbc" weg.
jepp... das wars Wenn ich auf alle Fehler geschaut habe....aber darauf wäre ich nicht gekommen...
Im PATH steht bei mir allerdings nur /usr/bin wo ein qmake3 und qmake 4 liegen.
Und einQTDIR finde ich auch leider nirgends in meiner Umgebung:
BASH:~$ set | grep -i -e qt
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:'
_filedir '@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|ASF|vob|VOB|bin|BIN|dat|DAT|vcd|VCD|ps|PS|pes|PES|fl[iv]|FL[IV]|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[34]|MP[34]|m4[av]|M4[AV]|og[gm]|OG[GM]|w?(a)v|W?(A)V|dump|DUMP|mk[av]|MK[AV]|m4a|M4A|aac|AAC|m2v|M2V|dv|DV|rmvb|RMVB|mid|MID|ts|TS|3g[p2]|mpc|MPC|flac|FLAC|vro|VRO|divx|DIVX|aif?(f)|AIF?(F)|m2ts|M2TS)'
Und auch via exportwar kein QTDIR zu finden.
Habe es jetzt via export QTDIR=/opt/qtsdk-2009.04/
gesetzt.
Dachte aber das das durch die Installation gesetzt wird...mhhh