Segitseg!!! iostream.h - nem talalhato (Ubuntu)

Fórumok

Egy C++ forraskodot szeretnek lefordiani, Ubuntu 8.10 alatt.
A forrasfajlok konyvtarabol probalom kiadni a make depend utasitast, de a kovetkezo hibauzenetet kapom:
...
types.h:19:22: error: iostream.h: No such file or directory

Valaki tud segiteni, hogyan lehet a problemat kezelni? Elore is koszonom.
(Amugy ezt a fajlt szeretnem leforditani :
http://www.cs.cmu.edu/~robosoccer/simulator/CMUnited99-source.tar.gz )

Hozzászólások

azért valamennyire ésszel kell a csomagokat feltenni, nemcsak úgy találomra próbaképpen. Használsz ace frameworkot? Ha nem, akkor nincs szükséged libace-dev -re. A másik csomag pedig egy cross-compillert tesz fel, szerintem azt sem használod.

Ami kell neked, az szerintem a libstdc++6-4.2-dev vagy a libstdc++6-4.1-dev függően a g++ verziódtól. - ezen csomagok tartalmazzák a standard library header fájljait.

Egyébként ha nem fordul valami, akkor bátran belenézhetsz a Makefile -ba, vagy a configure -ba, és kitalálhatod, hogy miért nem találja az adott fájlt. Mert abban is lehet hiba.

ok, tamogatom amit irtal, de konnyu megoldasnak tunik az ember vegketsegbeesetsegeben feltenni egy plusz csomagot (mellesleg amit itt tanacsoltatok) es remelni, hogy majd mukodik...
Feltettem a libstdc++6-4.1-dev es libstdc++6-4.2-dev csomagokat is, de nem ez volt a baja. A make es a configfile ba beleneztem, de nem sok otletet adott... mindenesetre koszonom a segiteni probalast.

Nem tudom a megoldást, csak arra emlékszem, hogy kb. 10 éve a standard template library megváltozott. A régebbi változatban "iostream.h"-t kellett inkludálni, az újban "iostream"-et, cin helyett std::cin-t kell írni, stb. Mostanra a régi változat már kiveszett. Peched van, hogy ilyen régi programot kell fordítanod.

--
CCC3

Hát ezt nem tudom, biztos vannak erre megoldások. Véleményem szerint, ha jól van megírva a kód (jó eséllyel egy szépen megírt 10 éves C++ kód 2009-ben is valid), magad is írhatsz rá egy scriptet, ami kicseréli ezeket az apró különbségeket.

Nem tudom, mit értesz fejlesztőeszköz alatt, ha egy okos szövegkszerkesztőt, akkor kate, gedit, mcedit vagy akár vi, ízlés szerint. Ha komplett fejlesztőkörnyezetet, akkor áltában Eclipse-t, Code::Blocks-ot szoktak emlegetni.

--
Keep it simple, stupid.

Ez a kod minden bizonnyal szepen van megirva (evek ota futo projekt, csak epp az utolso nyilvanos forras az 99-es ami elerheto...)

Fejleszto eszkoznek nyilvan nem akarok szovegszerkesztot hasznalni...
Az az igazsag, hogy linux alatt nem programoztam eddig(mint fent is irtam, komolyabban csak delphis multam van), az eclipset feltettem csomagbol, de nem tudom, hogy peldaul, ha abban akarok fejleszteni, egyenkent kell megnyitnom a .c fajlokat, nem tudja esetleg az egeszet projektkent kezelni, egyaltalan hogyan kezdjek hozza??

Ez a kod minden bizonnyal szepen van megirva

Nekem az alábbi random részletről nem a "szépen van megírva" kifejezés jut az eszembe, hanem valami egészen más szó, ami "g"-vel kezdődik és "ányolás"-ra végződik.

void my_error(char*);
void my_error(char*,int);
void my_error(char*,int,int);
void my_error(char*,int,int,int);
void my_error(char*,int,int,int,int);
void my_error(char*,int,int,int,int,int);
void my_error(char*,int,int,int,int,int,int);
void my_error(char*,int,int,int,int,int,char,int);
void my_error(char*,float);
void my_error(char*,float,float);
void my_error(char*,float,float,float);
void my_error(char*,float,float,float,float);
void my_error(char*,float,int);
void my_error(char*,char*);
void my_error(char*,char,int,int);
void my_error(char*,char,int,float,float);

Ha veszed a faradtsagot belenezni a forrasba, es eleg tudast erzel a hatad mogott minositeni azt, ha esetleg ennyire otthol erzed magad a temaban, nem tudom milyen rendszer alatt neztel bele, de neked lefutott a make-depend? Ha tudsz tanacsot adni, hogy-hogy forditsam, megkoszonnem, mert en sajnos kezdo vagyok ebben a temaban...

Én is belenéztem a forrásba.

A srácok, aki írták, még kezdő C++ programozók voltak.

Kb. azok a hibák, amiket mindenki elkövet kezdő korában:
Átad egy teljes objektumot a stacken paraméterként, ahelyett, hogy const referenciát írna, hiányoznak a const metódusok, stb... (geometry.h)

Úgy általában teljes névterek beemelése ellenjavallt, mégpedig azért, mert semmi sem garantálja, hogy nincs két ugyan olyan nevű függvény különböző névterekben.
Meg a későbbi karbantartást/fejlesztést is megnehezti, hogy nem tudod, ez ay az a függvény honnan van, és ha több névtérben is létezik ugyanolyan nevű függvény/class/akármi, akkor majd nem tudod egyértelműen eldönteni, hogy melyik honnan való.

hi,
nekem hylafax fordításnál volt hasonló gondom. Nem tudom segít-e, de leírom.Lényegében az volt a baj, hogy a configure script-ben át kellett írni a #include -ot, #include "iostream.h"-ra, és még néhány dolgot.
Hátha segít neked is....

Nekem 8.04-en lefordult,
elso korben javasolnam a build-essential nevu csomag feltelepiteset.

Remelem segit.

-== If you want peace prepare for waR ==-

csak a make depend-et neztem :)
mostmar nalam is elhalalozik, de nem az iostream miatt

utils.h:126: error: ISO C++ forbids declaration of ‘operator==’ with no type
utils.h:127: error: ISO C++ forbids declaration of ‘operator==’ with no type
utils.h:128: error: ISO C++ forbids declaration of ‘operator!=’ with no type
... a letezo osszes operator kb
netif.C:146: error: invalid conversion from ‘int*’ to ‘socklen_t*’

-== If you want peace prepare for waR ==-

Ha meg aktualis, akkor probalj downgradelni/telepiteni gcc-2.98-at ...
Az szerintem vinni fogja ...

k.

sajnálom, hogy feladtad, mert fentebb írtam neked a megoldást: a makefile-ba írd át a "g++" -t "g++-4.2" -re. Ezután már fordul a make depend.
A sima g++ magasabb verzió, amihez nincs dev csomag, ezért kell alacsonyabb verziót használnod... de update-alternatives-el is próbálkozhatsz...

Üdv. Gábor

Jesszusom... legalabb azert egyszer ki lett probalva a


find . -name \*.cpp -o -name \*.h -exec sed -i 's/#include <iostream.h>/#include <iostream>/g' {} \;

parancs? Mert itt mar erosen a birkavesevel foldrenges okozasanak kategoriajaba kezdunk belemaszni, de meg mindig nem latom, hogy miert nem jo a cserelgetos megoldas. Egy ezereves kodba igenis bele kell nyulni sajnos.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.