Benutzer-Werkzeuge

Webseiten-Werkzeuge


users:werner:wflamme:tora

TORA 1.3.20 übersetzen auf (Open)SuSE 10.0 x86_64

Vorbereitungen

  • Herunterladen des Tarballs von sourceforge
  • ggf. erforderliche devel-Pakete nachinstallieren (spätestens beim configure stellt sich raus was fehlt)

der erste Schritt: configure

Nicht wie im INSTALL-Doc angegeben configure aufrufen (das ist nämlich gar nicht da), sondern autogen.sh, was das configure erstellt. Nun kann man configure erfolgreich aufrufen:

export LDFLAGS=-L/usr/lib/qt3/lib64 && ./configure -prefix=/usr -without-rpath -disable-new-check -without-kde -with-qt-includes=/usr/lib/qt3/include -with-qt-libs=/usr/lib/qt3/lib64 -with-qtdir=/usr/lib/qt3 -with-libdir=/usr/lib/qt3/lib64

Bitte beachten, dass vor den Parametern ein einfaches und kein doppeltes Minuszeichen steht! Ohne das export LDFLAGS=-L/usr/lib/qt3/lib64 && wird /usr/lib/qt3/lib64 nicht in die Befehlszeile aufgenommen, und dadurch erhält man dauernd

configure: error: Qt () (library qt-mt) not found.
      Please check your installation! For more details about this problem,
      look at the end of config.log.Make sure that you have compiled Qt with thread support!

obwohl ldconfig bestätigt, dass die Bibliotheken da sind…

der zweite Schritt: make

So, danach kommt das make:

# make
/usr/bin/moc -o qtlegacy/qtmultilineedit.moc qtlegacy/qtmultilineedit.h
/usr/bin/moc -o qtlegacy/qttableview.moc qtlegacy/qttableview.h
/usr/bin/moc -o toabout.moc toabout.h
/usr/bin/uic -o toaboutui.h toaboutui.ui
uic: File generated with too old version of Qt Designer
File 'toaboutui.ui' is not valid
make: *** [toaboutui.h] Fehler 1

Dank der Newsgruppe alt.linux.suse habe ich die Lösung hierfür bekommen: Mit installiertem qt3-devel tausche man im Makefile die Einträge zu MOC und UIC von /usr/bin zu /usr/lib/qt3/bin, und make läuft erstmal.

Nächster Fehler:

if /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.   -I/usr/lib/qt3/include   -DDEFAULT_PLUGIN_DIR=\"/usr/lib64\" -DTOVERSION=\"1.3.19\" -I/opt/oracle/product/10.2.0/db_1/rdbms/demo -I/opt/oracle/product/10.2.0/db_1/plsql/public -I/opt/oracle/product/10.2.0/db_1/rdbms/public -DOTL_ORA10G -DOTL_ORA_TIMESTAMP -DOTL_ANSI_CPP -DOTL_FUNC_THROW_SPEC_ON -DOTL_EXCEPTION_ENABLE_ERROR_OFFSET    -DQT_THREAD_SUPPORT -g -O2 -D_REENTRANT -MT toalert.lo -MD -MP -MF ".deps/toalert.Tpo" -c -o toalert.lo toalert.cpp; \
then mv -f ".deps/toalert.Tpo" ".deps/toalert.Plo"; else rm -f ".deps/toalert.Tpo"; exit 1; fi
: command not found:
./libtool: line 379: syntax error near unexpected token 'elif'
'/libtool: line 379: 'elif test "X$1" = X--fallback-echo; then
make[1]: *** [toalert.lo] Error 1
make[1]: Leaving directory '/usr/src/packages/tora-1.3.20'
make: *** [all] Error 2

Das ließ sich mit dos2unix libtool und chmod a+x libtool beseitigen.

Nächster Fehler:

if /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.   -I/usr/lib/qt3/include   -DDEFAULT_PLUGIN_DIR=\"/usr/lib64\" -DTOVERSION=\"1.3.19\" -I/opt/oracle/product/10.2.0/db_1/rdbms/demo -I/opt/oracle/product/10.2.0/db_1/plsql/public -I/opt/oracle/product/10.2.0/db_1/rdbms/public -DOTL_ORA10G -DOTL_ORA_TIMESTAMP -DOTL_ANSI_CPP -DOTL_FUNC_THROW_SPEC_ON -DOTL_EXCEPTION_ENABLE_ERROR_OFFSET    -DQT_THREAD_SUPPORT -g -O2 -D_REENTRANT -MT toalert.lo -MD -MP -MF ".deps/toalert.Tpo" -c -o toalert.lo toalert.cpp; \
then mv -f ".deps/toalert.Tpo" ".deps/toalert.Plo"; else rm -f ".deps/toalert.Tpo"; exit 1; fi
libtool: unrecognized option '--tag=CXX'
Try 'libtool --help' for more information.
make[1]: *** [toalert.lo] Error 1
make[1]: Leaving directory '/usr/src/packages/tora-1.3.20'
make: *** [all] Error 2

Wird gelöst, indem im Makefile die Zeile LIBTOOL = $(SHELL) $(top_builddir)/libtool gegen LIBTOOL = $(SHELL) /usr/bin/libtool getauscht wird.

Der nächste Fehler ist

In file included from toalert.cpp:74:
toalert.moc:12:2: error: #error "The header file 'toalert.h' doesn't include <QObject>."

mit den entsprechenden Folgefehlern. Durch ein dos2unix toalert.h wird die Meldung beseitigt.

Weiter gehts:

/bin/sh "/usr/bin/libtool" --tag=CXX --mode=link g++  -DQT_THREAD_SUPPORT -g -O2 -D_REENTRANT -lpcre  -L/usr/X11R6/lib64 -L/usr/lib -lqt-mt -ljpeg -lSM -lICE -lXext -lX11 -lSM -lICE -lqscintilla -lstdc++ -lpthread -L/opt/oracle/product/10.2.0/db_1/lib -L/opt/oracle/product/10.2.0/db_1/lib32  -L/usr/lib/qt3/lib64 -o libtoalert.la -rpath /usr/lib64 -avoid-version -rpath /usr/lib64 -module -shared toalert.lo -lpcre g++ -shared -nostdlib /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-suse-linux/4.0.2/crtbeginS.o  .libs/toalert.o -Wl,--rpath -Wl,/usr/lib/qt3/lib64 -Wl,--rpath -Wl,/usr/lib/qt3/lib64 -L/usr/X11R6/lib64 -L/usr/lib /usr/lib/qt3/lib64/libqt-mt.so -L/usr/lib64 -L/usr/lib64/ -L/usr/X11R6/lib64/ /usr/lib64/libjpeg.so -lXext -lX11 -lSM -lICE -lqscintilla -lpthread -L/opt/oracle/product/10.2.0/db_1/lib -L/opt/oracle/product/10.2.0/db_1/lib32 -L/usr/lib/qt3/lib64 /usr/lib64/libpcre.so -L/usr/lib64/gcc/x86_64-suse-linux/4.0.2 -L/usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../lib64 -L/usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../.. -L/lib/../lib64 -L/usr/lib/../lib64 /usr/lib/libstdc++.so -lm -lc -lgcc_s /usr/lib64/gcc/x86_64-suse-linux/4.0.2/crtendS.o /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../lib64/crtn.o

-Wl,-soname -Wl,libtoalert.so -o .libs/libtoalert.so

/usr/lib/libstdc++.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[1]: *** [libtoalert.la] Error 1
make[1]: Leaving directory '/usr/src/packages/tora-1.3.20'
make: *** [all] Error 2

Darüber kommt man hinweg, indem im Makefile bei QT_LDFLAGS und all_libraries der Eintrag -L/usr/lib gegen -L/usr/lib64 getauscht wird. Dabei kann man gleich qt_libraries von /usr/lib auf /usr/lib/qt3/lib ändern.

Der nächste Fehler -

toanalyze.moc:12:2: error: #error "The header file 'toanalyze.h' doesn't include <QObject>."

lässt sich mal wieder mit einem dos2unix toanalyze.h beseitigen. Dann folgt das Gleiche mit tobackup.h, tobrowser.h, tobrowserconstraint.h usw. - ich habe dann alle .h-Files mit dos2unix behandelt.

Der nächste Fehler

if /bin/sh "/usr/bin/libtool" --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.   -I/usr/lib/qt3/include   -DDEFAULT_PLUGIN_DIR=\"/usr/lib64\" -DTOVERSION=\"1.3.19\" -I/opt/oracle/product/10.2.0/db_1/rdbms/demo -I/opt/oracle/product/10.2.0/db_1/plsql/public -I/opt/oracle/product/10.2.0/db_1/rdbms/public -DOTL_ORA10G -DOTL_ORA_TIMESTAMP -DOTL_ANSI_CPP -DOTL_FUNC_THROW_SPEC_ON -DOTL_EXCEPTION_ENABLE_ERROR_OFFSET    -DQT_THREAD_SUPPORT -g -O2 -D_REENTRANT -MT tobrowser.lo -MD -MP -MF ".deps/tobrowser.Tpo" -c -o tobrowser.lo tobrowser.cpp; \
then mv -f ".deps/tobrowser.Tpo" ".deps/tobrowser.Plo"; else rm -f ".deps/tobrowser.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/lib/qt3/include -DDEFAULT_PLUGIN_DIR=\"/usr/lib64\" -DTOVERSION=\"1.3.19\" -I/opt/oracle/product/10.2.0/db_1/rdbms/demo -I/opt/oracle/product/10.2.0/db_1/plsql/public -I/opt/oracle/product/10.2.0/db_1/rdbms/public -DOTL_ORA10G -DOTL_ORA_TIMESTAMP -DOTL_ANSI_CPP -DOTL_FUNC_THROW_SPEC_ON -DOTL_EXCEPTION_ENABLE_ERROR_OFFSET -DQT_THREAD_SUPPORT -g -O2 -D_REENTRANT -MT tobrowser.lo -MD -MP -MF .deps/tobrowser.Tpo -c tobrowser.cpp  -fPIC -DPIC -o .libs/tobrowser.o
tobrowserconstraint.h:49: error: expected class-name before ‘,’ token
tobrowser.cpp:431: error: expected class-name before ‘{’ token
tobrowser.cpp: In member function ‘void toBrowserFilterSetup::setup(bool)’:
tobrowser.cpp:435: error: no matching function for call to ‘toHelp::connectDialog(toBrowserFilterSetup* const)’
tohelp.h:255: note: candidates are: static void toHelp::connectDialog(QDialog*)
tobrowser.cpp:438: error: ‘OnlyOwnSchema’ was not declared in this scope
tobrowser.cpp:439: error: ‘Tablespaces’ was not declared in this scope
tobrowser.cpp:443: error: cannot convert ‘toBrowserFilterSetup* const’ to ‘QObject*’ for argument ‘1’ to ‘toConnection& toCurrentConnection(QObject*)’
tobrowser.cpp:453: error: ‘TablespaceType’ was not declared in this scope
tobrowser.cpp: In constructor ‘toBrowserFilterSetup::toBrowserFilterSetup(bool, QWidget*)’:
tobrowser.cpp:457: error: class ‘toBrowserFilterSetup’ does not have any field named ‘toBrowserFilterUI’
tobrowser.cpp: In constructor ‘toBrowserFilterSetup::toBrowserFilterSetup(bool, toBrowserFilter&, QWidget*)’:
tobrowser.cpp:462: error: class ‘toBrowserFilterSetup’ does not have any field named ‘toBrowserFilterUI’
tobrowser.cpp:466: error: ‘Buttons’ was not declared in this scope
tobrowser.cpp:467: error: ‘TablespaceType’ was not declared in this scope
tobrowser.cpp:472: error: ‘Tablespaces’ was not declared in this scope
tobrowser.cpp:480: error: ‘String’ was not declared in this scope
tobrowser.cpp:481: error: ‘Invert’ was not declared in this scope
tobrowser.cpp:482: error: ‘IgnoreCase’ was not declared in this scope
tobrowser.cpp:483: error: ‘OnlyOwnSchema’ was not declared in this scope
tobrowser.cpp: In member function ‘toBrowserFilter* toBrowserFilterSetup::getSetting()’:
tobrowser.cpp:488: error: ‘Tablespaces’ was not declared in this scope
tobrowser.cpp:491: error: ‘Buttons’ was not declared in this scope
tobrowser.cpp:492: error: ‘IgnoreCase’ was not declared in this scope
tobrowser.cpp:493: error: ‘Invert’ was not declared in this scope
tobrowser.cpp:494: error: ‘String’ was not declared in this scope
tobrowser.cpp:495: error: ‘TablespaceType’ was not declared in this scope
tobrowser.cpp:497: error: ‘OnlyOwnSchema’ was not declared in this scope
tobrowser.cpp: In member function ‘void toBrowser::defineFilter()’:
tobrowser.cpp:1921: error: ‘class toBrowserFilterSetup’ has no member named ‘exec’
tobrowser.cpp:1927: error: ‘class toBrowserFilterSetup’ has no member named ‘exec’
tobrowser.cpp: In member function ‘void toBrowseTemplate::defineFilter()’:
tobrowser.cpp:2405: error: ‘class toBrowserFilterSetup’ has no member named ‘exec’
tobrowser.cpp:2414: error: ‘class toBrowserFilterSetup’ has no member named ‘exec’
make[1]: *** [tobrowser.lo] Error 1
make[1]: Leaving directory `/usr/src/packages/tora-1.3.20'
make: *** [all] Error 2

lässt mich wieder alt aussehen…

die Lösung

Da hatte ich dann die Faxen dicke, habe die 32bit-Version installiert, die Bibliotheken versymlinkt bzw. (Oracle) von einem 32bit-System einkopiert, und gut ist. 1.3.21 läuft damit auch…

users/werner/wflamme/tora.txt · Zuletzt geändert: 2006-03-13 1542 von 127.0.0.1

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki