22. november 2001 - 15:18Der er
13 kommentarer og 2 løsninger
lexer/parser/scanner!!!
Jeg har et problem!
Jeg har lavet lexer/parser/scanner i windows og skal nu have det flyttet til linux.
Men!
Der er problemer med include filerne :-( jeg har indkredset det til iostream og/eller fstream filerne. Hvad skal de erstattes med??? og skal kaldene laves om?
Har selv lavet samme projekt Start aldrig med borland, og senere gå over i linux. Linux kan godt køre med de include\'s men hvis du køre med tråde skal du i alle dine cout<< droppe endl og bruge cout<<\"\\n\" istedet. Trådene kan simpelthen ikke køre hvis du bruger endl. Hvad skriver den af compilerfejl ?
compilerfejl er f.eks. (der er mange og lange fejl :-) ) : \"/tmp/cceTFPce.o(.text+0x1a2): undefined reference to \'ifstream::ifstream(int, char const *, int, int)\'
sådan nogle er der ca. 20-25 stk. af :-) Hvis jeg så tager ifstream.cpp og istream.cpp filerne over på linux\'en kommer disse fejl: \'ifstream.cpp:1: stlexam.h: No such file or directory\'
Har du checket at iosteam.f og fstream.h findes ??? At de ligger samme sted som de andre include filer ??? Hvis, har du så checket at de indeholder de prototyper (altså f.eks. ifstream::ifstream) som du forventer ???
Jeg har selv tilsvarende problemer, som jeg fandt ud af skyldtes at der i mit windows miljø blev sat en #define _win32_ og at den styrede om de relevante dele af mine include-filer overhovedet blev taget med. Ligeledes bliver der ofte sat _CPLUSPLUS_ og _CDECL_ \"automatisk\" af Windows-compileren. Jeg kunne snildt forestille mig at nogle af disse #define ikke bliver lavet under LINUX, og dele af include-filerne som indeholder ifstream osv. derfor blev sprunget over.
neeej det tror jeg ikke, har aldrig brugt gcc. Jeg mener da det er en C compiler. g++ i linux er ivertifald en C++ compiler. Hvis gcc er en C compiler kan den ikke klare en cout<< (iostream.h) for det findes jo ikke i C. Men vi for vel at vide om chrisrj har fundet løsningen
Det er compileren der er noget galt med, og ikke headerfilerne under linux... Når man compilere .CPP-filer under linux, skal det ske med g++, og ikke gcc.... Har man et program der består af både C, og C++ , anvendes compilen egcs
Jeg har nu prøvet at bruge g++ og iostream.h, fstream.h... Men ak, der kommer stadig fejl. Den siger \"g++: Compilation of header file requested\" 2 gange. Lader jeg være med at inkluderer de to ovennævnte filer kommer der ca. 10.000.000 fejl. :-)
Det drejede sig bare om <string.h> skulle ændres til <string> og using namespace std;!!!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.