/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
GCC program kan ikke compa Borland C++
Fra : Martin Moller Peders~


Dato : 23-04-01 13:51

Jeg har lavet to smaa programmer, som kompilerer fint uden
nogle warnings under g++ paa min linux-bog.

Men min svigerfar som skal bruge den, kan ikke compile dem under
Borland C++ compiler. Den kommer med en millard (naesten) forskellige
fejl, som jeg ikke kan genskue.

Hvis nogle vil give lidt hints til hvordan jeg faar programmet
kompileret under Borland C++, saa vil jeg blive glad.

Source-koderne kan findes under

http://www.daimi.au.dk/~tusk/janiss/

/Mvh
Martin



 
 
Mogens Hansen (23-04-2001)
Kommentar
Fra : Mogens Hansen


Dato : 23-04-01 14:21

Hej Martin,
"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
news:9c18g2$rdk$1@news.net.uni-c.dk...
> Jeg har lavet to smaa programmer, som kompilerer fint uden
> nogle warnings under g++ paa min linux-bog.

Hvad er det for en bog ?
Hvis du har en bog, hvor den kode står i vil jeg anbefale dig at anskaffe en
moderne C++ bog.

>
> Men min svigerfar som skal bruge den, kan ikke compile dem under
> Borland C++ compiler. Den kommer med en millard (naesten) forskellige
> fejl, som jeg ikke kan genskue.

En milliard ?
Jeg får det til 4-6 fejl for palidrom.cpp og 7 for fraction.cpp.
Hvilken version Borland C++ compiler bruger du ?
Jeg bruger Borland C++Builder V5.0 patch 1, som for compilerens vedkommende
svarer til den gratis C++ compiler V5.5.1 som kan downloades hos Borland.

Grunden til at dit progam ikke compilerer, er at det ikke er gyldige C++
programmer.
Du kan ikke have brugt en moderne C++ til at oversætte det med. Det kan
anbefales at du bør se at en der er up-to-date.
Koden er hverken gammel C++ eller moderne C++ - det er et mix af begge dele.

>
> Hvis nogle vil give lidt hints til hvordan jeg faar programmet
> kompileret under Borland C++, saa vil jeg blive glad.
>

Problemet er namespace.

I dine header filer skriver du:
* ostream - det hedder "std::ostream"
* string - det hedder "std::string"
I begge dine header filer (biginteger.h og fraction.h) har du implementeret
funktioner, uden at det er inline funktioner - det er noget rigtigt snavs.
I din palidrom.cpp skriver du:
* cout - det hedder "std::cout"
* cin - det hedder "std::cin"
eller prøv med using std::cout; og using std::cin;

I din fraction.cpp behøves du ikke at includere "iostream" - det ser ud til
at give problemer.

De compilerer hos mig, når jeg lige har rettet de par småfejl.

Venlig hilsen

Mogens Hansen



Martin Moller Peders~ (23-04-2001)
Kommentar
Fra : Martin Moller Peders~


Dato : 23-04-01 21:43

In <3ae42af2$1@lxcs1.manbw.dk> "Mogens Hansen" <mogens_h@dk-online.dk> writes:

>Hej Martin,
>"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
>news:9c18g2$rdk$1@news.net.uni-c.dk...
>> Jeg har lavet to smaa programmer, som kompilerer fint uden
>> nogle warnings under g++ paa min linux-bog.

>Hvad er det for en bog ?
>Hvis du har en bog, hvor den kode står i vil jeg anbefale dig at anskaffe en
>moderne C++ bog.

Naeh. Det har jeg saamaend skrevet selv og jeg har ikke speciel erfaring til C++.

>>
>> Men min svigerfar som skal bruge den, kan ikke compile dem under
>> Borland C++ compiler. Den kommer med en millard (naesten) forskellige
>> fejl, som jeg ikke kan genskue.

>En milliard ?
>Jeg får det til 4-6 fejl for palidrom.cpp og 7 for fraction.cpp.

Jeg fik ogsaa en del fejl med nogle libraries.

>Hvilken version Borland C++ compiler bruger du ?

Hmm. Det husker jeg ikke. Nu sidder min svigerfar normalt 1500 kilometer vaek, men
i paasken fik jeg lige muligheden for at proeve selv paa hans maskine. Jeg aner intet
om windows eller Borland C++. Jeg er ogsaa vant til at makefile og ikke noget
project snavs, som Borlands forlanger.
Men jeg tror at det er en version 4.0.

>Jeg bruger Borland C++Builder V5.0 patch 1, som for compilerens vedkommende
>svarer til den gratis C++ compiler V5.5.1 som kan downloades hos Borland.

Ok. Saa vil jeg anbefale ham at faa en nyere version.

>Grunden til at dit progam ikke compilerer, er at det ikke er gyldige C++
>programmer.

Virkeligt ? Det kompilerer fint og uden nogle warning overhovedet under GCC.

>Problemet er namespace.

Ok. Det begreb har jeg heller ikke forstaaet 100%.

>I dine header filer skriver du:
> * ostream - det hedder "std::ostream"
> * string - det hedder "std::string"

Ok. Det havde jeg overset, da jeg jo har skrevet "using namespace std" i .cpp-filerne.

>I begge dine header filer (biginteger.h og fraction.h) har du implementeret
>funktioner, uden at det er inline funktioner - det er noget rigtigt snavs.

Hvorfor det ?

>I din palidrom.cpp skriver du:
> * cout - det hedder "std::cout"
> * cin - det hedder "std::cin"
>eller prøv med using std::cout; og using std::cin;

Selvom jeg har skrevet "using namespace std" ?

>I din fraction.cpp behøves du ikke at includere "iostream" - det ser ud til
>at give problemer.

Ok. Det bliver saa inkluderet to gange ? Er det ikke en fejl i Borlands kompilerer.

>De compilerer hos mig, når jeg lige har rettet de par småfejl.

OK. Det vil jeg fortaelle svigerfar, saa han kan proeve igen.

Tusind tak for hjaelpen. Det lader til at det ikke er nok at koden
kompilerer 100% uden fejl under GCC. Det er vist tid til at jeg faar mine
C++-boeger tilbage.

Mvh
Martin




Mogens Hansen (24-04-2001)
Kommentar
Fra : Mogens Hansen


Dato : 24-04-01 03:40

Hej Martin,
"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
news:9c245e$15fu$1@news.net.uni-c.dk...
>
> >I begge dine header filer (biginteger.h og fraction.h) har du
implementeret
> >funktioner, uden at det er inline funktioner - det er noget rigtigt
snavs.
>
> Hvorfor det ?

Fordi, hvis du inkluderer den samme header-fil i flere CPP filer i et større
program - hvilket er almindeligt - så kommer der flere implementeringer af
den samme funktion, hvilket typisk vil give linker fejl.

>
> >I din fraction.cpp behøves du ikke at includere "iostream" - det ser ud
til
> >at give problemer.
>
> Ok. Det bliver saa inkluderet to gange ? Er det ikke en fejl i Borlands
kompilerer.

Det kiggede jeg ikke så grundigt på, så jeg kan sige det med sikkerhed.

Venlig hilsen

Mogens Hansen



Martin Moller Peders~ (24-04-2001)
Kommentar
Fra : Martin Moller Peders~


Dato : 24-04-01 09:24

In <9c2p02$2ej1$1@news.cybercity.dk> "Mogens Hansen" <mogens_h@dk-online.dk> writes:

>Hej Martin,
>"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
>news:9c245e$15fu$1@news.net.uni-c.dk...
>>
>> >I begge dine header filer (biginteger.h og fraction.h) har du
>implementeret
>> >funktioner, uden at det er inline funktioner - det er noget rigtigt
>snavs.
>>
>> Hvorfor det ?

>Fordi, hvis du inkluderer den samme header-fil i flere CPP filer i et større
>program - hvilket er almindeligt - så kommer der flere implementeringer af
>den samme funktion, hvilket typisk vil give linker fejl.

Men det er vel ikke noget problem, da jeg har skrevet

#ifndef __BIGINTEGER_H__
#define __BIGINTEGER_H__

"koden"

#endif

da indholdet af .h-filen kun bliver loest en gang.

Mvh
/Martin

Mogens Hansen (24-04-2001)
Kommentar
Fra : Mogens Hansen


Dato : 24-04-01 10:19

Hej Martin,
"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
news:9c3d7o$rsg$1@news.net.uni-c.dk...
> In <9c2p02$2ej1$1@news.cybercity.dk> "Mogens Hansen"
<mogens_h@dk-online.dk> writes:
>
> >Fordi, hvis du inkluderer den samme header-fil i flere CPP filer i et
større
> >program - hvilket er almindeligt - så kommer der flere implementeringer
af
> >den samme funktion, hvilket typisk vil give linker fejl.
>
> Men det er vel ikke noget problem, da jeg har skrevet

Jo - det er et problem.

>
> #ifndef __BIGINTEGER_H__
> #define __BIGINTEGER_H__
>
> "koden"
>
> #endif
>
> da indholdet af .h-filen kun bliver loest en gang.

Per compilerings enhed (CPP fil)
Der kan - og vil typisk - indgå _mange_ CPP filer i et projekt, som så af
linkeren bliver lavet til en eksekverbar fil.

Venlig hilsen

Mogens Hansen



Igor V. Rafienko (24-04-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 24-04-01 11:18

* Martin Moller Pedersen

> Men det er vel ikke noget problem, da jeg har skrevet
>
> #ifndef __BIGINTEGER_H__
> #define __BIGINTEGER_H__


Navn som inneholder __ er reservert for all bruk i alle kontekster til
implementasjonen. Mao. don't do that.





ivr
--
The only "intuitive" interface is the nipple. After that, it's all learned.
(Bruce Ediger, bediger@teal.csn.org, in comp.os.linux.misc, on X interfaces.)

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste