ICE - C Bibliothek Übersetzung -> Fehlermeldung

Anthrax

Lieutenant
Registriert
Juli 2002
Beiträge
844
Hallo Leute

Ich will/muss für mein Programmierpraktikum die ice - C Bibliothek für die Bildverarbeitung der Uni Jena auf meinem Laptop installieren (SUSE 10.2_32). Allerdings fehlt mir zum Übersetzen irgendeine Bibliothek. Ich habe auch schon ganz google nach diesem Fehler abgegrast und auch viele Hinweise gefunden, aber alle nachinstallierten Pakete waren nicht die Richtigen. In der ICE - Anleitung isst nichts weiter in Bezug darauf beschrieben. Ich hoffe, irgendjemand von euch kennt sich mit den Bibliotheken etwas besser aus und kann mir sagen, welche noch installiert werden muss.

Hier ein Auszug aus dem "make dep" Befehl. Es liegt insgesamt nur eine Fehlermeldung vor (/usr/include/bits/local_lim.h:36:26: Fehler: linux/limits.h: ) :

/usr/include/bits/local_lim.h:36:26: Fehler: linux/limits.h: Datei oder Verzeichnis nicht gefunden
In Datei, eingefügt von /usr/include/bits/posix1_lim.h:153,
von /usr/include/limits.h:145,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/limits.h:122,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/syslimits.h:7,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/limits.h:11,
von /usr/include/c++/4.1.2/climits:50,
von /usr/include/c++/4.1.2/bits/stl_algobase.h:66,
von /usr/include/c++/4.1.2/bits/char_traits.h:46,
von /usr/include/c++/4.1.2/string:46,
von ./message.h:30,
von ./macro.h:29,
von ./based.h:25,
von VelocimetryUtil.h:1,
von VelocimetryUtil.cpp:1:
/usr/include/bits/local_lim.h:36:26: Fehler: linux/limits.h: Datei oder Verzeichnis nicht gefunden
In Datei, eingefügt von /usr/include/bits/posix1_lim.h:153,
von /usr/include/limits.h:145,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/limits.h:122,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/syslimits.h:7,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/limits.h:11,
von /usr/include/c++/4.1.2/climits:50,
von /usr/include/c++/4.1.2/bits/stl_algobase.h:66,
von /usr/include/c++/4.1.2/bits/char_traits.h:46,
von /usr/include/c++/4.1.2/string:46,
von ./message.h:30,
von visual.cpp:31:
/usr/include/bits/local_lim.h:36:26: Fehler: linux/limits.h: Datei oder Verzeichnis nicht gefunden
In Datei, eingefügt von /usr/include/bits/posix1_lim.h:153,
von /usr/include/limits.h:145,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/limits.h:122,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/syslimits.h:7,
von /usr/lib/gcc/i586-suse-linux/4.1.2/include/limits.h:11,
von xio.cpp:29:
/usr/include/bits/local_lim.h:36:26: Fehler: linux/limits.h: Datei oder Verzeichnis nicht gefunden
make: *** [dep] Fehler 1
 
Hast du die Kernel Sourcen installiert?
Poste mal folgende Ausgabe:
Code:
rpm -q gcc kernel-source
und
Code:
uname -r

Wenn sie fehlen, dann über YaST nachinstallieren.

gruss, limoni
 
Die kernel-source habe ich nachinstalliert, was aber das Problem nicht behebt. Der Fehler ist auch auch reiner Compiler Natur. An der Art Fehlermeldung ändert sich nichts.

Zu den Ausgaben:

gcc-4.1.3-39
kernel 2.6.18.8-0.1-default
kernel-source 2.6.18.8-0.1

-------------------------------------------Nachtrag

Ok, habe die fehlende Bibiliothek ausfindig machen können. Es waren die linux kernelheaders.

Allerdings taucht nun eine neue Fehlermeldung auf:

Laptop:/usr/local/ts/ice # make
g++ -I. -g -Wall -c Aco.cpp
g++ -I. -g -Wall -c BitCount.cpp
g++ -I. -g -Wall -c DPList.cpp
g++ -I. -g -Wall -c Delta.cpp
g++ -I. -g -Wall -c Entropy.cpp
g++ -I. -g -Wall -c IMatrix.cpp
g++ -I. -g -Wall -c MatrixO.cpp
g++ -I. -g -Wall -c MatrixAlgebra.cpp
g++ -I. -g -Wall -c MaxSrch.cpp
g++ -I. -g -Wall -c MtchTool.cpp
./geo_ob.h:35: Warnung: »class ice::GeoObject« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./geo_ob.h:69: Warnung: »class ice::Point« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./geo_ob.h:83: Warnung: »class ice::Circle« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./geo_ob.h:110: Warnung: »class ice::CircleSeg« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./geo_ob.h:138: Warnung: »class ice::Ellipse« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./geo_ob.h:168: Warnung: »class ice::EllipseSeg« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./geo_ob.h:200: Warnung: »class ice::LineSeg« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./fitfn.h:51: Warnung: »class ice::Func« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./fitfn.h:144: Fehler: zusätzliche Qualifizierung »ice::Func2D::« an Element »Func2D«
./fitfn.h:142: Warnung: »class ice::Func2D« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./fitfn.h:232: Warnung: »class ice::Polynom2D2O« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./fitfn.h:259: Warnung: »class ice::Polynom2D1O« hat virtuelle Funktionen aber nicht-virtuellen Destruktor
./basergb.h:83: Fehler: zusätzliche Qualifizierung »ice::ImageRGB::« an Element »operator=«
./basergb.h:98: Fehler: zusätzliche Qualifizierung »ice::ImageRGB::« an Element »EqualImg«
make: *** [MtchTool.o] Fehler 1
Laptop:/usr/local/ts/ice #

Nach etwa google scheint hier auch wieder irgendwas zu fehlen. Aber der Fehler ist speziell. Ich hoffe, ihr könnte damit was anfangen.
 
Zuletzt bearbeitet:
ich konnte damit etwas anfangen, fazit:
1) die bibliothek enthält garstiges c++...
2) der makefile ist unvollständig
3) eine funktion fehlt. (allerdings kommt die erst nach dem teil, den du gepostet hast.

ich habe alles soweit gepatched, das es kompiliert. allerdings kann ich es nicht testen, da keine unittest beiliegen und ich auf die schnelle keine programme finden kann, die die lib nutzen. wenn du interessen hast, schick mir deine email-adresse per pn, dann schick ich dir den patch.

ich werde wohl auch mal mit denen in jena kontakt aufnehmen und meinen patch zu denen schicken.
 
Ah, Licht am Horizont. Hier hast du mal einen simplen Beispiel-Code zum testen.

#include<stdio.h>
#include<iostream>
#include<math.h>
#include<string.h>
#include<image.h>
int main(void)
{
Image pic1,pic2;
int dimx,dimy,maxval;
int i,j,g,dummy;
OpenAlpha(“ICE Text Server”); /* Eigenes ICE-Textterminal */
SetAttribute(0,7,0,0); /* Eigenes ICE-Textterminal */
ClearAlpha(); /* Eigenes ICE-Textterminal */
InfImgFile(“name”,dimx,dimy,maxval,dummy); /*z.B. f¨ur name bild.bmp */
pic1=NewImg(dimx,dimy,maxval);
pic2=NewImg(dimx,dimy,maxval);
if (pic1==NULL || pic2==NULL)
{
Printf(“No memory available”);
exit(1);
}
Display(ON); /* Schaltet das Grafikterminal ein */
Show(ON,pic1); /* pic1 zur Visualisierung anmelden */
ReadImg(“name”,pic1);
/* Die ausgabe lautet: WriteImg(pic1,“name”); */
for (i=0;i<dimx;++i)
for (j=0;j<dimy;++j)
{
g=GetVal(pic1,i,j);
g=g*10;
if (g>maxval) g=maxval;
PutVal(pic2,i,j,g);
}
Show(ON,pic2);
GetChar(); /* Eingabe eines Zeichens vom ICE-Textterminal */
Show(OFF,pic1);
Show(OFF,pic2);
Display(OFF);
FreeImg(pic1);
FreeImg(pic2);
}

Für "name" musst die nur noch den Ordner und den Namen des Bildes einfügen (2xmal). Mail schicke ich dir gleich.
 
Zurück
Oben