tyler@test:~/moneypenny/src$ make -j1 meldet Fehler

 
Tyler Durden
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Münster
Beiträge: 16
Dabei seit: 04 / 2005
Betreff:

tyler@test:~/moneypenny/src$ make -j1 meldet Fehler

 · 
Gepostet: 03.08.2005 - 18:27 Uhr  ·  #1
Hallo!

habe leider etwas probleme, moneypenny unter debian sarge zu kompilieren, wobei ich schon eine Vermutung habe, woran es liegt, nur nach durchsicht des Makefiles und der möglichen optionen von qmake und make keine ahnung, wie ich das problem in den griff bekommen soll.

Am besten erstmal die Fehlermeldung (ich kürze, das Ding, vorher nur erfolgsmeldungen)
Code
tyler@test:~/moneypenny/src$ qmake  "CONFIG+=release" moneypenny.pro
tyler@test:~/moneypenny/src$ make -j1
/usr/share/qt3/bin/uic guiaccepttransactionbase.ui -o build/uis/guiaccepttransactionbase.h
/usr/share/qt3/bin/uic guibalancesbase.ui -o build/uis/guibalancesbase.h
......
/usr/share/qt3/bin/uic guisqlquerybase.ui -o build/uis/guisqlquerybase.h
/usr/share/qt3/bin/uic guisqlqueryresultbase.ui -o build/uis/guisqlqueryresultbase.h
g++ -c -pipe -Wall -W -O2 -O3 -g0 -Wno-unused-parameter  -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/qt3 -Ibuild/uis/ -I. -Ibuild/mocs/ -o build/os/accountjobfactory.o accountjobfactory.cpp
In Datei, eingefügt von hobit.h:40,
                    von accountjobfactory.h:21,
                    von accountjobfactory.cpp:18:
hobit_crypt.h:23:25: openssl/evp.h: Datei oder Verzeichnis nicht gefunden
In file included from hobit.h:40,
                 from accountjobfactory.h:21,
                 from accountjobfactory.cpp:18:
hobit_crypt.h:152: error: ISO C++ forbids declaration of `EVP_MD' with no type
hobit_crypt.h:152: error: Fehler beim Parsen before `*' token
hobit_crypt.h:155: error: ISO C++ forbids declaration of `EVP_MD' with no type
hobit_crypt.h:155: error: declaration of `const int HoBIT_Crypt::EVP_MD'
hobit_crypt.h:152: error: conflicts with previous declaration `const int 
   HoBIT_Crypt::EVP_MD'
hobit_crypt.h:155: error: Fehler beim Parsen before `*' token
hobit_crypt.h:158: error: Syntaxfehler before `*' token
hobit_crypt.h:162: error: 'EVP_CIPHER_CTX' is used as a type, but is not 
   defined as a type.
hobit_crypt.h:166: error: ISO C++ forbids declaration of `EVP_CIPHER' with no 
   type
hobit_crypt.h:166: error: Fehler beim Parsen before `*' token
make: *** [build/os/accountjobfactory.o] Fehler 1
tyler@test:~/moneypenny/src$ 

Nein ich nehme das script make release nicht, weil ich cd, rm, qmake und make auch selber eingeben kann, und gmake bei mir auch zur fehlermeldung führt (programm heißt bei debian 'make' und wird auch so aufgerufen...das ist GNU make) - das Makefile braucht nicht gelöscht zu werden, da es direkt nach dem entpacken nicht existiert.

Besonders interesant finde ich diese Zeile:
Code
hobit_crypt.h:23:25: openssl/evp.h: Datei oder Verzeichnis nicht gefunden

besonders in Verbindung mit der kompiliererfahrung von gwenhywfar, openhbci-tng und aqmoney-tng, denn alle drei haben wegen der openssl pfade gemeckert beim make und haben abgebrochen.
Ein ./configure --with-openssl-libs=/usr/local/ssl/lib hat aber bei allen Abhilfe geschaffen

Vermute mal in dem fehlerhaften abschnitt soll das verschlüsselte speichern im homeverzeichniss kompiliert werden, wofür openssl benötigt wird, was aber nicht gefunden wird, weil es an einem nicht erwarteten ort liegt (debian ist manchmal etwas anders) - jetzt steh ich aber vor dem Problem, dass ich keine Ahnung habe, wie qmake mitzuteilen ist, wo die opnessl libs liegen, oder dem dann erstellten Makefile, ist ja egal wann, nur vor dem make.

Kann auch sein, dass das Problem ganz woanders liegt, ist nur ne nahe liegende Vermutung...wenn genaue Versionsnummer der benötigten programme oder der compiler, header, etc benötigt wird, kann ich das gerne raussuchen.

Jegliche tips probiere ich begeistert aus und bedanke mich schonmal dafür!

mfg stefan
cstim
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Beiträge: 150
Dabei seit: 08 / 2004
Betreff:

Re: tyler@test:~/moneypenny/src$ make -j1 meldet Fehler

 · 
Gepostet: 04.08.2005 - 09:37 Uhr  ·  #2
Hi, ich hab zwar keine Ahnung von Moneypenny, aber die erwähnte Zeile sagt ganz klar, daß das Include-Verzeichnis mit den openssl-includes im Compileraufruf *fehlt*. Sieh im Paketmanager mal nach, wo aus dem Paket openssl-devel (oder openssl) denn die Datei evp.h installiert ist. Angenommen, sie ist in /usr/local/include/openssl/evp.h, dann müsste das fehlerhafte Compilerkommando das Argument -I/usr/local/include enthalten.

In gwenhywfar wird das dadurch erledigt, daß bei ./configure genau dieses Include-Verzeichnis vorher rausgesucht wird und dann nachher automatisch beim Kompilieren benutzt wird. Bei Moneypenny scheinst du ja kein ./configure zu haben -- dann wäre eine Möglichkeit, daß du manuell in die Datei Makefile im Verzeichnis der Fehlermeldung das genannte Compiler-Argument einfügst. Such dazu nach einer Zeile im Makefile, wo andere existierende Compiler-Argumente drinstehen, also sowas wie "-I/usr/include/qt3", und dann füge einfach "-I/usr/local/include" (oder entsprechendes; jeweils ohne Gänsefüßchen) direkt dazu.

cstim
vieljever
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 5
Dabei seit: 07 / 2005
Betreff:

Re: tyler@test:~/moneypenny/src$ make -j1 meldet Fehler

 · 
Gepostet: 04.08.2005 - 10:24 Uhr  ·  #3
Zitat
Nein ich nehme das script make release nicht, weil ich cd, rm, qmake und make auch selber eingeben kann, und gmake bei mir auch zur fehlermeldung führt (programm heißt bei debian 'make' und wird auch so aufgerufen...das ist GNU make) - das Makefile braucht nicht gelöscht zu werden, da es direkt nach dem entpacken nicht existiert

Um ganz genau zu sein, sollte "gmake" eigentlich ein Symlink auf "make" sein, nur dass dieser Link aus einem mir nicht erfindlichen Grund von Debian nicht gesetzt wird; diesen Symlink zu setzen wird also der weniger fehlerträchtige Weg sein.

Ansonsten: gibt es die bemängelte Datei "evp.h" in /usr/local/include/openssl?
Ein weiterer "Workaround" wäre, einen Symlink von /usr/local/include(openssl auf /usr/include/openssl zu setzen; da hat er zumindest bei mir den Kram gefunden.
cstim
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Beiträge: 150
Dabei seit: 08 / 2004
Betreff:

Re: tyler@test:~/moneypenny/src$ make -j1 meldet Fehler

 · 
Gepostet: 04.08.2005 - 11:29 Uhr  ·  #4
Zitat geschrieben von vieljever
Ein weiterer "Workaround" wäre, einen Symlink von /usr/local/include(openssl auf /usr/include/openssl zu setzen; da hat er zumindest bei mir den Kram gefunden.
Von einem solchen "Workaround" würde ich aber dringend abraten, denn die unterschiedlichen prefixe /usr und /usr/local sind ja nicht ohne Grund unterschiedliche prefixe. Wenn man die kreuz und quer hin- und herlinkt, handelt man sich aber spätestens beim nächsten Update wahrscheinlich eine Menge Ärger ein und dann kollidieren alte und neue Versionen.

Stattdessen würde ich mal eher nachfragen, warum openssl überhaupt unter /usr/local und nicht unter /usr installiert wurde. Wurde das selber per Hand aus dem tarball installiert, anstatt über den Paketmanager? Dann sollte man das mal lieber löschen und durch ein Paket aus dem Paketmanager ersetzen lassen. Oder ist bei Debian tatsächlich /usr/local für openssl vorgesehen? Kann ich mir eigentlich kaum vorstellen.
Tyler Durden
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Münster
Beiträge: 16
Dabei seit: 04 / 2005
Betreff:

Re: tyler@test:~/moneypenny/src$ make -j1 meldet Fehler

 · 
Gepostet: 04.08.2005 - 14:57 Uhr  ·  #5
:oops:
Da will ich selber pakete bauen und bin zu blöd mit dem paketsystem umzugehen...

naja war nen schnellschuß, aber jetzt brauch ich kein workaround mehr...er rattert und kompiliert hoffentlich durch.

Problem war, dass ich die openssl devel pakete nicht gefunden hab, libssl-dev ist eigentlich ne bezeichnung die man finden müsste, aber ich hatte nur das openssl paket installiert, was nicht funktioniert hat, also habe ich mir auch openssl als tarball besorgt und per checkinstall installiert und das landet nun mal unter /usr/local/ und so sollte es mit selbsterzeugten paketen auch sein.

Jetzt hab ich das selbsterzeugt paket erstmal wieder deinstalliert und openssl und libssl-dev installiert, was zwar gwenhywfar, aqmoney und openhbci funktionsuntüchtig macht, da die gegen das selbsterzeugte paket kompiliert sind, aber moneypenny scheint durchzulaufen....naja nicht ganz, wieder irgendein problem mit evp, aber geraume zeit später
Code
sqlqueryresultbase.o   -L/usr/share/qt3/lib -L/usr/X11R6/lib -lopenhbci2 -laqmoney -lqt-mt -lXext -lX11 -lm
build/os/hobit_crypt.o(.text+0xff): In function `HoBIT_Crypt::HoBIT_Crypt[not-in-charge]()':
: undefined reference to `EVP_ripemd160'
build/os/hobit_crypt.o(.text+0x107): In function `HoBIT_Crypt::HoBIT_Crypt[not-in-charge]()':
: undefined reference to `EVP_ripemd160'
build/os/hobit_crypt.o(.text+0x117): In function `HoBIT_Crypt::HoBIT_Crypt[not-in-charge]()':
: undefined reference to `EVP_bf_cbc'
build/os/hobit_crypt.o(.text+0x31f): In function `HoBIT_Crypt::HoBIT_Crypt[in-charge]()':
: undefined reference to `EVP_ripemd160'
build/os/hobit_crypt.o(.text+0x327): In function `HoBIT_Crypt::HoBIT_Crypt[in-charge]()':
: undefined reference to `EVP_ripemd160'
build/os/hobit_crypt.o(.text+0x337): In function `HoBIT_Crypt::HoBIT_Crypt[in-charge]()':
: undefined reference to `EVP_bf_cbc'
build/os/crypttripledes.o(.text+0x3a6): In function `CryptTripleDes::setPassword(QString)':
: undefined reference to `MD5'
collect2: ld returned 1 exit status
make: *** [../bin/moneypenny] Fehler 1
tyler@test:~/moneypenny/src$ mc


Aber das hängt (hoffe ich) mit den funktionsuntüchtigen benötigten programmen zusammen - jetzt fange ich erstmal ganz in ruhe von vorne an.

Danke für die Tips (vor allem der mit dem selbst erstellten paket hat mir nen licht aufgehen lassen).

mfg tyler

p.s.: wieso sollte es einen symlink gmake auf make geben? Ich kompiliere mir zwar erst seit ca zwei jahren programme selber, aber was anderes als den bekannten dreisatz ./configure && make && make install habe ich selten gesehen, auch unter suse oder mandrake hat das meistens zum gewünschten ergebnis geführt.
Tyler Durden
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Münster
Beiträge: 16
Dabei seit: 04 / 2005
Betreff:

Geschafft! THX

 · 
Gepostet: 04.08.2005 - 17:24 Uhr  ·  #6
Hurra! Danke!

man sollte immer ausgeschlafen und ganz in Ruhe da ran gehen, dann klappt das auch!
Jetzt muss ich nur noch eben den drucker konfigurieren und dann hab ich hier noch nen bogen mit hashwerten für ne diskette liegen 😉

Das Konzept sagt mir auf jeden fall sehr zu - solange die daten, die im homeverzeichnis landen gut verschlüsselt sind, sehe ich auch kein sicherheitsrisko dabei das zu installieren - mal im ernst, wer will denn jedesmal neu booten, nur um den kontostand zu checken, und knoppix dauert auch auf meinem AMD 64 3000+ mit 1GB RAM ne weile zum booten - kernelkompilieren geht aber erfreulich schnell ;-)

Hab die Live CD noch nie gesehen, wenn man die auf das nötigste abspeckt (ne simple blackbox als WM, und nur die tools für ne internetverbindung nimmt, nix mehr) könnte das schneller gehen - trotzdem...ich bin zwar paranoid genug mit zwei routern mit portbasierter firewall (DMZ dazwischen, soll noch nen proxy rein) und dann noch ner portbasierten firewall auf jedem client/server online zu gehen, aber so paranoid bin selbst ich nicht!

mfg stefan
Gewählte Zitate für Mehrfachzitierung:   0