Ist hier zufällig ein Makefile und C Experte?
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Ist hier zufällig ein Makefile und C Experte?
Er müsste python, swig und swish-e auf dem Rechner haben. Ich habe hier zwei kleine c Dateien und ein Makefile das für ein altes System geschrieben wurde.Vermutlich ist das c OK, aber das Makefile veraltet. Im Endeffekt soll ein python script auf Swish-e zugreifen können.
Leider bekomme ich das mit meinen Kenntnissen nicht in den Griff. Sind alles zusammen keine 60 Zeilen und wäre für einen Fachmann vermutlich trivial.
Ich würde die Dateien als zip bereit stellen.
Leider bekomme ich das mit meinen Kenntnissen nicht in den Griff. Sind alles zusammen keine 60 Zeilen und wäre für einen Fachmann vermutlich trivial.
Ich würde die Dateien als zip bereit stellen.
warum postest du die Dateien nicht auf NoPaste http://nopaste.debianforum.de/
und die Fehlermeldung(en) hier in deinen Beitrag ?
Gruß
gms
und die Fehlermeldung(en) hier in deinen Beitrag ?
Gruß
gms
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Ich habe jetzt eine halbe Stunde mit meiner Antwort gewartet. In dieser Zeit hätte ich das Problem wahrscheinlich schon längst gelöst, aber wenn du glaubst, daß es auf deine Art schneller geht ...bombaclaude hat geschrieben:Zu kompliziert. Downloaden entpacken, testen, fertig. Das geht viel schneller.
befürchtest du ein Linzensvergehen, wenn du die Dateien nicht als ZIP-File zur Verfügung stellstbombaclaude hat geschrieben: Ausserdem weiss ich nicht ob die Dateien unter irgend einer Lizens stehen.
Das stimmt für meinen eigenen Rechner, aber wenn ich an der FH oder so bin, dann funktioniert das halt nicht unbedingt so einfach.bombaclaude hat geschrieben:Downloaden entpacken, testen, fertig. Das geht viel schneller.
Zudem: bevor ich dein Programm kurz teste, werde ich mir den Code sowieso durchlesen (weiß ja nicht was da so böses drin steht) ... und dann kann ich es gleich hier in nopaste lesen.
Use ed once in a while!
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Ah, hier sitzt jemand auch in solch einem Institut. Tja ...Meillo hat geschrieben:Das stimmt für meinen eigenen Rechner, aber wenn ich an der FH oder so bin, dann funktioniert das halt nicht unbedingt so einfach.bombaclaude hat geschrieben:Downloaden entpacken, testen, fertig. Das geht viel schneller.
Zudem: bevor ich dein Programm kurz teste, werde ich mir den Code sowieso durchlesen (weiß ja nicht was da so böses drin steht) ... und dann kann ich es gleich hier in nopaste lesen.
@gms
Danke für die Hilfe. Du findest die Dateien hier http://home.arcor.de/bgt5/
Sollte alles dabei sein. Vielleicht ist das ganz trivial, kenn mich da aber nicht mit aus und hier bei mir im Institut sitzen leider die flaschen Experten.
Wäre daher nett wenn Du mal kurz drüber schauen könntest.
Im Makefile habe ich folgende Änderungen gemacht:
a) In den zwei Zeilen mit "gcc -c" habe ich jeweils die Option "-fPIC" angefügt. Diese wird benötigt, wenn eine Shared Library erstellt werden soll
b) In der Zeile mit "gcc -shared" habe "-R${CODEBASE}" durch "-Wl,-rpath,{CODEBASE}" ersetzt. Hier bin ich mir allerdings nicht sicher, wofür die "-R" Option überhaupt gedacht war. Nachdem aber für CODEBASE anscheinend ein Verzeichnis "/usr/cms" gesetzt wurde, habe ich vermutet, daß hier der RTL Path gesetzt werden sollte
Den von dir gepostete Fehler
habe ich mit einer zusätzlichen Deklaration behoben:
Diese Zeile habe ich in "swish_e.i" gleich nach dem "#include <string>" eingefügt.
Unter http://nopaste.debianforum.de/6950
findest du einen entsprechenden Patch
Gruß
gms
edit:
den Patch kannst du mit "patch -p1 <pfad/zur/patchdatei" einspielen, ein vorhergehender Testlauf mit der zusätzlichen Option "--dry-run" ist empfehlenswert
a) In den zwei Zeilen mit "gcc -c" habe ich jeweils die Option "-fPIC" angefügt. Diese wird benötigt, wenn eine Shared Library erstellt werden soll
b) In der Zeile mit "gcc -shared" habe "-R${CODEBASE}" durch "-Wl,-rpath,{CODEBASE}" ersetzt. Hier bin ich mir allerdings nicht sicher, wofür die "-R" Option überhaupt gedacht war. Nachdem aber für CODEBASE anscheinend ein Verzeichnis "/usr/cms" gesetzt wurde, habe ich vermutet, daß hier der RTL Path gesetzt werden sollte
Den von dir gepostete Fehler
Code: Alles auswählen
g++ -c swish_e_wrap.cxx -I/usr/include/python2.4
swish_e_wrap.cxx: In function ‘PyObject* _wrap_search(PyObject*, PyObject*)’:
swish_e_wrap.cxx:6651: error: no matching function for call to ‘search(std::string&, std::string&)’
Code: Alles auswählen
extern std::vector<std::string> search(std::string, std::string);
Unter http://nopaste.debianforum.de/6950
findest du einen entsprechenden Patch
Gruß
gms
edit:
den Patch kannst du mit "patch -p1 <pfad/zur/patchdatei" einspielen, ein vorhergehender Testlauf mit der zusätzlichen Option "--dry-run" ist empfehlenswert
Code: Alles auswählen
gms1 swish.new # patch --dry-run -p1 <../swish-patch.txt
patching file Makefile
patching file swish_e.i
gms1 swish.new # patch -p1 <../swish-patch.txt
patching file Makefile
patching file swish_e.i
gms1 swish.new #
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Danke vielmals!
Hat leider nicht funktioniert:
was leider in diesem Fehler endet http://home.arcor.de/bgt5/Fehlermeldung-2.txt
Mir ist jetzt nicht ganz klar was mir das sagen soll. Ich werde morgen mal die swish-e Liste erforschen. Vielleicht steht dort eine Antwort.
:
Hat leider nicht funktioniert:
Ich habe es noch mit dieser Makefile versucht http://home.arcor.de/bgt5/Makefile-2make
g++ -c swish_e.c -I/usr/local/include/python2.4 -fPIC
swig -c++ -python -I/usr/share/swig1.3 -I/usr/share/swig1.3/python swish_e.i
/usr/share/swig1.3/stl.i:8: Warning(204): CPP #warning, "stl.i not implemented for this target"
swish_e.i:14: Error: Template 'vector' undefined.
make: *** [swish_e_wrap.cxx] Fehler 1
was leider in diesem Fehler endet http://home.arcor.de/bgt5/Fehlermeldung-2.txt
Mir ist jetzt nicht ganz klar was mir das sagen soll. Ich werde morgen mal die swish-e Liste erforschen. Vielleicht steht dort eine Antwort.
:
dieser Fehler ist bei mir nicht gekommen. Ich werde am Abend versuchen der Sache nachzugehen, auf den ersten Blick schaut es so aus, als würde von swig noch etwas fehlen.bombaclaude hat geschrieben:make
g++ -c swish_e.c -I/usr/local/include/python2.4 -fPIC
swig -c++ -python -I/usr/share/swig1.3 -I/usr/share/swig1.3/python swish_e.i
/usr/share/swig1.3/stl.i:8: Warning(204): CPP #warning, "stl.i not implemented for this target"
swish_e.i:14: Error: Template 'vector' undefined.
make: *** [swish_e_wrap.cxx] Fehler 1
Gibt es bei dir eine "/usr/share/swig/[VERSION]/python/stl.i" Datei, ansonsten wird die Datei "/usr/share/swig/[VERSION]/stl.i" verwendet, in der dann das entsprechende Warning enthalten ist
/usr/share/swig/1.3.31/stl.i hat geschrieben: * -----------------------------------------------------------------------------
* See the LICENSE file for information on copyright, usage and redistribution
* of SWIG, and the README file for authors - http://www.swig.org/release.html.
*
* stl.i
* ----------------------------------------------------------------------------- */
#warning "stl.i not implemented for this target"
#define SWIG_STL_UNIMPL
diesen Fehler hatte ich auch. Hier sind wir aber schon beim Testen des Moduls, welches zu diesem Zeitpunkt auch schon geladen und angesprochen wurde. Ich habe daher diesen Fehler ignoriert, weil ich dachte, daß bei mir swish_e wahrscheinlich nicht korrekt eingerichtet ist.bombaclaude hat geschrieben: Ich habe es noch mit dieser Makefile versucht http://home.arcor.de/bgt5/Makefile-2
was leider in diesem Fehler endet http://home.arcor.de/bgt5/Fehlermeldung-2.txt
Gruß
gms
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Ja, sind beide vorhanden. Das einzige Paket was mir fehlte war libxml2-dev. Ich dachte zunächst auch swish-e-dev, aber dem war nicht so.Gibt es bei dir eine "/usr/share/swig/[VERSION]/python/stl.i" Datei, ansonsten wird die Datei "/usr/share/swig/[VERSION]/stl.i" verwendet, in der dann das entsprechende Warning enthalten
Andere Idee: Kann es an veralteten Versionen liegen? Ich nutze Lenny.
Ich habe zwar ursprünglich auf meinem Gentoo System getestet, auf meinem Lanny System funktionierts jedoch genauso:
verwendete swig Version ist 1.3.31-1
Gruß
gms
Code: Alles auswählen
gms@gms4:~/tmp$ swig -c++ -python swish_e.i
gms@gms4:~/tmp$ ls -l
insgesamt 248
-rw-r--r-- 1 sandner sandner 293 2007-11-08 19:57 swish_e.i
-rw-r--r-- 1 sandner sandner 5940 2007-11-08 20:19 swish_e.py
-rw-r--r-- 1 sandner sandner 235421 2007-11-08 20:19 swish_e_wrap.cxx
Gruß
gms
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
Zu dem Ergebnis komme ich auch.gms hat geschrieben:Code: Alles auswählen
gms@gms4:~/tmp$ swig -c++ -python swish_e.i gms@gms4:~/tmp$ ls -l insgesamt 248 -rw-r--r-- 1 sandner sandner 293 2007-11-08 19:57 swish_e.i -rw-r--r-- 1 sandner sandner 5940 2007-11-08 20:19 swish_e.py -rw-r--r-- 1 sandner sandner 235421 2007-11-08 20:19 swish_e_wrap.cxx
Wenn ich jetzt in meinem cms die Suchfunktion aufrufe, dann gibt es diesen Fehler:
Das gleiche bekomme ich hierbei:File "/var/www/dieter/htdocs/cms/search.py", line 24, in search
import swish_e
File "swish_e.py", line 7, in ?
import _swish_e
ImportError: No module named _swish_e
Was ist _swish_e ?~/tmp$ python swish_e.py
Traceback (most recent call last):
File "swish_e.py", line 7, in ?
import _swish_e
ImportError: No module named _swish_e
Hier aber nicht :bombaclaude hat geschrieben:Zu dem Ergebnis komme ich auch.gms hat geschrieben:Code: Alles auswählen
gms@gms4:~/tmp$ swig -c++ -python swish_e.i gms@gms4:~/tmp$ ls -l insgesamt 248 -rw-r--r-- 1 sandner sandner 293 2007-11-08 19:57 swish_e.i -rw-r--r-- 1 sandner sandner 5940 2007-11-08 20:19 swish_e.py -rw-r--r-- 1 sandner sandner 235421 2007-11-08 20:19 swish_e_wrap.cxx
bombaclaude hat geschrieben:Code: Alles auswählen
swig -c++ -python -I/usr/share/swig1.3 -I/usr/share/swig1.3/python swish_e.i /usr/share/swig1.3/stl.i:8: Warning(204): CPP #warning, "stl.i not implemented for this target" swish_e.i:14: Error: Template 'vector' undefined. make: *** [swish_e_wrap.cxx] Fehler 1
"_swish_e" ist der Name der Shared Library:bombaclaude hat geschrieben: Wenn ich jetzt in meinem cms die Suchfunktion aufrufe, dann gibt es diesen Fehler:
Was ist _swish_e ?Code: Alles auswählen
File "/var/www/dieter/htdocs/cms/search.py", line 24, in search import swish_e File "swish_e.py", line 7, in ? import _swish_e ImportError: No module named _swish_e
Code: Alles auswählen
-rw-r--r-- 1 root root 5940 8. Nov 22:07 swish_e.py
-rw-r--r-- 1 root root 397552 8. Nov 22:07 swish_e_wrap.o
-rwxr-xr-x 1 root root 278600 8. Nov 22:07 _swish_e.so
-rw-r--r-- 1 root root 10370 8. Nov 22:07 swish_e.pyc
Anscheinend wird also die Shared Library "_swish_e.so" nicht gefunden
-
- Beiträge: 320
- Registriert: 01.01.2007 13:19:34
So ich habe es vermutlich hinbekommen, jedenfalls bekomme ich eine vom CMS generierte Fehlermeldung. Dafür funktioniert das indexieren mit swish-e aus irgend einem Grund nicht mehr. Das ist hier alles ein wenig labil.
Wenn sich noch ein Problem ergeben sollte, dann würde ich Dir eine PM schicken. Ich muss das sowieso erst mal verarbeiten ...
Vielen Dank das Du mir einen Teil Deiner Freizeit gespendet hast. Ich hätte es alleine wohl nicht geschafft.
Wenn sich noch ein Problem ergeben sollte, dann würde ich Dir eine PM schicken. Ich muss das sowieso erst mal verarbeiten ...
Vielen Dank das Du mir einen Teil Deiner Freizeit gespendet hast. Ich hätte es alleine wohl nicht geschafft.