Avatar billede chrisrj Forsker
22. november 2001 - 15:18 Der 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?
Avatar billede mickni33 Nybegynder
22. november 2001 - 18:52 #1
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 ?
Avatar billede chrisrj Forsker
22. november 2001 - 20:00 #2
Jeg skal kun have tråde i serveren. Jeg har fjernet ALLE cout\'er - så det er ikke dem der er problemet.
Avatar billede chrisrj Forsker
22. november 2001 - 20:08 #3
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\'

Er det noget du kan nikke genkendende til?
Avatar billede mickni33 Nybegynder
22. november 2001 - 20:38 #4
ifstream.cpp  ??

prøv bare med
#include <iostream.h>
#include <fstream.h>

ikke de der cpp filer
Avatar billede chrisrj Forsker
22. november 2001 - 20:50 #5
Dem jeg har inkluderet. Der er når jeg skal kompilerer at jeg bruger dem.
Avatar billede chrisrj Forsker
22. november 2001 - 20:54 #6
Når jeg kompilere skriver jeg:
gcc -o sypproj.cpp scanner.cpp ... ovs. ovs.
Avatar billede soepro Nybegynder
23. november 2001 - 08:55 #7
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.
Avatar billede mickni33 Nybegynder
23. november 2001 - 09:00 #8
Jeg kan se at du compiler et c++ program (cpp) med en C compiler (gcc) .
prøv dette istedet.

g++ mainProgram.cpp -o minExeFil

Det skulle gerne klare de forskellige headerfiler
Avatar billede soepro Nybegynder
23. november 2001 - 10:37 #9
mickni33 >> Javel, her gik jeg og troede at gcc kunne begge dele !
Avatar billede mickni33 Nybegynder
23. november 2001 - 10:43 #10
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
Avatar billede amby Nybegynder
23. november 2001 - 12:06 #11
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
Avatar billede soepro Nybegynder
23. november 2001 - 12:10 #12
amby >> hvorfor egcs - C er da en del af C++ - de to kan da ikke skilles ad !
Avatar billede mickni33 Nybegynder
23. november 2001 - 12:10 #13
g++ er vel også compatible med C, Det var jo det Bjarne Stroustrup arbejde gik ud på da han lavede C++.
C med klasser blev det også kaldt
Avatar billede chrisrj Forsker
23. november 2001 - 15:21 #14
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. :-)

soepro>> Hvor er de der #define_win32_ osv.?
Avatar billede chrisrj Forsker
24. november 2001 - 12:29 #15
Så er det klaret!!!

Det drejede sig bare om <string.h> skulle ændres til <string> og using namespace std;!!!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester