[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] andre compilere end g++ ???



Hej Klaus - frisk tilbage fra skiferie vil jeg lige tage tråden op igen.


On Sun, 26 Jan 2003 01:29:34 +0100, Klaus S. Madsen wrote:

> Uhha... Det er ikke specielt let at skrive porterbar C++ kode. 

Det tør siges!!! Jeg har haft en del fede mavelandninger!

> Mest
> fordi der er så mange ting der skal gå godt. Primært fordi der er så
> stor forskel på STL implementationerne. 

Det var nu ikke her hvor jeg har mødt så mange problemer - og STLport er
et glimrende alternativ hvis ikke man kommer igennem.

> Et andet problem er også hvor
> god compileren er til namespaces. Tag f.eks. flg. kode:
> 
> void func() 
> {
> 	mynamespace::type_t t;
> 	some_function(t);
> }
> 
> Her skal compileren både lede efter some_function i :: namespacet, og i
> mynamespace. 

Jo - men programmøren burde jo gøre det oplagte at putte some_function
også i mynamespace, og kalde den ved fulde navn, eller ved using
mynamespace::some_function.  Det vil jeg betragte som god skik - ikke
mindst for de næste der læser ens kode. Så det generer mig ikke at nogle
kompilere ikke vil acceptere dette.

Jeg synes faktisk at G++ er for god til det - jeg har ofte oplevet at den
for eksempel tillader direkte at skrive til cout, selvom det rettelig
burde hedde std::cout - og lignende ting. Jeg kunne godt tænke mig at den
var lidt striksere på det punkt.

Jeg har fået adgang til en linux box med intel kompileren på (faktisk
en klynge på DTU... så det er lidt af en
underdrivelse at kalde det "en box"), og jeg synes at den virker ret fint
som kompiler. 


> F.eks. hvis du oversætte din kode med -ansi, så er du et stykke af
> vejen. Hvis du så også bruger -pedantic, så giver den dig mange
> fejlbeskeder, som ellers slipper igennem... Derudover er der ting som
> uinitialiserede variable osv. som compileren kun opdager hvis du
> kompilerer med -O osv.

Jo, men også kode kompileret med disse options kan have fejl. Jeg lavede
lige en i går med noget pointer-rod, hvor jeg newede en pointer, for at
overskrive den med en anden, og delete den første - en rigtig god torsk.
G++ kompilerede og kørte programmet fejlfrit - på en linux box - og
kompilerede, men core dumpede på en anden linux box, som den burde gøre.
De var spøjst! Tak til dem der hjalp mig med at finde programmerings-fejlen...

> Det vi har gjort, er at vi har hele vores projekt i CVS. I gamle dage,
> da projektet ikke var så stort, satte vi et build igang ved CVS-commit,
> hvis der ikke allerede kørte et. Dvs. vi lavede en lille fil på et
> NFS-share, som alle vores build maskiner så stod og pollede efter vha.
> cron. Det virker ret godt, specielt fordi man meget hurtigt fik besked
> om fejl osv, når man comittede ny kode... Ulæmpen er naturligvis at man
> skal have lige så mange maskiner stående som man vil kompilere til :-)

Det lyder faktisk lidt smart. Man kunne også bruge samme ide på en maskne
med to forskellige kompilere... og slipper for NFS enda..


Mange tak for en del gode ider, 

mange hilsen, Marc Cromme



 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:09 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *