/ 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
C++ til MS Windows
Fra : Per Abrahamsen


Dato : 11-10-01 14:08

Jeg har et mellemstort ikke-grafisk C++ program (58k linier, 285
filer), hvor min primære udviklingsplatform er Unix/GCC 2.95.2, og
sekundære er Wintel/Borland C++ 5.0.1. Programmet bruger stort set
alle C++ features der understøttes af begge disse compilerem inklusiv
standard biblioteket.

Programmet distribueres i binært som en Wintel .exe og .dll, og i
kildetekst. Brugerne, både af de binære og kildeteksten, er
videnskabsfolk der primært bruger Wintel, ofte kan lidt programmering,
men ikke er computer wizards. Der er dog selvfølgelig tale om en
intelligent målgruppe. Nogle brugere er fattige Ph.D. studerende,
andre brugere vil integrere programmet med andre projekter.

Mit problem er hvilke tools jeg skal satse på fremover. På Unix siden
er det oplagt GCC 3, som allerede nu kan oversætte programmet,
compileren er bare endnu for langsom, men de arbejder på det.

Men Windows? Jeg kan ikke fortælle folk de skal købe Borland C++
længere, det er vist ingen gang et produkt længere. Borland satser
vist udelukkende på C++Builder.

Her er de alternativer jeg har kigget på:

Cygwin:

(+) Cygwin er gratis, og trivielt at installere. Samtidig kan
jeg bruge min Unix makefile, hvilket gør mange ting lettere.
Cygwin bruger GCC, hvilket betyder at jeg kun behøver at kode
rundt om et enkelt sæt af compiler bugs. Cygwin producerer
den hurtigste kode for mit program af nogen af de C++ compiler
jeg har prøvet.

(-) Der kræves en cygwin1.dll, som komplicerer specielt den
binære distribution. Programmet har en tendens til at pføre
sig Unix-agtigt, specielt med hensyn til stinavne, omend det
er blevet bedre med nyere udgave. Jeg kan ikke linke når jeg
oversætter med debug information med kun 128 MB ram og 1 GB
swap. Jeg har endnu ikke prøvet at lave en dll.

Cygwin -mno-cygwin:

(+) Ingen cygwin1.dll, opfører sig ikke som Unix.

(-) Kræver selvstændig ikke-triviel installation af MinGW C++
biblioteker, der ikke altid er i sync med Cygwin GCC.

Visual C++:

(+) Det er hvad de fleste bruger. Rigtig lækker IDE.

(-) Deres C++ er meget gammeldags, og fuld af fejl. Jeg har
kunne "omgå" de fleste fejl, men jeg har ikke været i stand til
at slå advarsel C4786 (truncate debug til 256 tegn) fra,
hvilket betyder at når jeg brøver at oversætte til Debug
drukner alle vigtige beskeder i C4786.

C++Builder 5:

(+) Compileren har et godt ry. Kommandolinieudgaven fungerer,
og jeg kan bygge mit program under Cygwin med Unix makefilen og
Borlands compiler. Dokumentationen er rigtig god.
Kommandolinieudgaven er

(-) IDE'n er så langsom og så fejlbehæftet at den er ubrugelig.
Mit program kører kun *halvt så hurtigt* oversat med C++Builder
5 i forhold til Borland C++ 5.0.1. Absurd, men sandt.

Borland C++ 5.0.1:

(+) Tålelig IDE. Ok kode.

(-) Gammeldags C++, dårlig dokumentation, sælges ikke længere.

Konklusion:
===========

Visual C++ er nok det jeg er mest tændt på, fordi flest kender det, og
eksisterende projekter der vil integrere programmet mest sandsynligt
bruger Visual C++. C4786 er det største problem. Jeg har

#pragma warning (disable: 4786 4503)

i min common.h fil. Det virker fint for 4503, men ikke 4786.

Cygwin vil jeg fortsat understøtte fordi det er let, og for at give et
gratis alternativ. Men ikke basere min Wintel support på den, før
-mno-cygwin understøtter C++.

Borland er jeg tæt på at droppe helt, de er helt klart efter et andet
markedssegment end mig.

Er der andre jeg burde checke? DJGCC?

 
 
Thorbjørn Ravn Ander~ (11-10-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 11-10-01 14:25

Per Abrahamsen <abraham@dina.kvl.dk> writes:

> Borland er jeg tæt på at droppe helt, de er helt klart efter et andet
> markedssegment end mig.
>
> Er der andre jeg burde checke? DJGCC?

Google har et afsnit med C++ compilere.

http://directory.google.com/Top/Computers/Programming/Languages/C%2B%2B/Compilers/

Jeg har tidligere været godt tilfreds med EMX fordi den tillod at lave
statiske executables uden DLL'er. Dens EXE filer kører i DOS-mode
under Windows, dette afhjælpes dog med RSX
(http://www.mathematik.uni-bielefeld.de/~rainer/).

Jeg ville teste om dette kører hurtigt nok. Så får du GCC uden DLL,
og var det ikke det du gerne ville?

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Mogens Hansen (11-10-2001)
Kommentar
Fra : Mogens Hansen


Dato : 11-10-01 14:27


"Per Abrahamsen" <abraham@dina.kvl.dk> wrote in message
news:rjr8sauxxe.fsf@ssv2.dina.kvl.dk...

> (-) Deres C++ er meget gammeldags, og fuld af fejl. Jeg har
> kunne "omgå" de fleste fejl, men jeg har ikke været i stand til
> at slå advarsel C4786 (truncate debug til 256 tegn) fra,
> hvilket betyder at når jeg brøver at oversætte til Debug
> drukner alle vigtige beskeder i C4786.
>

prøv

#if defined(_MSC_VER) && (1200 == _MSC_VER)
// #Microsoft Visual C++ V6.0
// Disable warnings
#pragma warning(disable : 4786) // identifier was truncated to 'number'
characters in the debug information
#endif

i toppen af din fil

>
> Er der andre jeg burde checke? DJGCC?

Intel C++ må være et seriøst bud
http://developer.intel.com/software/products/compilers/c50/

(Teoretisk +)
* De understøtter hele C++ standarden (undtagen nogle få sjældent
anvendte feature)
* De integrerer med Visual C++ IDE, og erstatter den indbyggede
compiler
* Den kan generere bedre kode end Visual C++ (hvis den overhovedet skal
have nogen berettigelse)
* Understøtter OpenMP
(Teoretisk -)
* Den er ikke gratis - man der er en 30 dages trial

Jeg har ikke erfaring med den selv.

Hvis du prøver den, så lad os høre hvad du syntes.

Venlig hilsen

Mogens Hansen



Per Abrahamsen (11-10-2001)
Kommentar
Fra : Per Abrahamsen


Dato : 11-10-01 15:07

"Mogens Hansen" <mogens_h@dk-online.dk> writes:
> #pragma warning(disable : 4786)

Den linie har jeg allerede, den fjerner nogen men langt fra alle
warning.

> Intel C++ må være et seriøst bud
> http://developer.intel.com/software/products/compilers/c50/

Ja, hvis det bare var til mig. Men et vigtigt kriterie er at have et
enkelt sted at pege en fattig Ph.D. studerende til, der ønsker at rode
med min kode.

Mogens Hansen (11-10-2001)
Kommentar
Fra : Mogens Hansen


Dato : 11-10-01 19:42


"Per Abrahamsen" <abraham@dina.kvl.dk> wrote in message
news:rjwv22tgmi.fsf@ssv2.dina.kvl.dk...
> "Mogens Hansen" <mogens_h@dk-online.dk> writes:
>
> > Intel C++ må være et seriøst bud
> > http://developer.intel.com/software/products/compilers/c50/
>
> Ja, hvis det bare var til mig. Men et vigtigt kriterie er at have et
> enkelt sted at pege en fattig Ph.D. studerende til, der ønsker at rode
> med min kode.

Det er heller ikke små krav du vil have opfyldt (som jeg opfatter dem):
* Den skal være billig (helst gratis)
* Den skal genere god gode
* Den skal have en god C++ implementering
* Den må gerne have et godt IDE

Jeg har lige downloaded trial-udgaven af Intel compileren. Mit umiddelbare
indtryk er:
* den integrerer ubesværet med Visual C++ V6.0 miljøet
* den compilerer ubesværet (bortset fra debug info trunkering, for at være
compatibel!) noget temmeligt langhåret template kode,
som compilerer med
* Comeau C/C++ 4.2.45.2
* Borland C++Builder 5 Patch 1 på MS-Windows 2000
* gcc 2.96 på Red Hat Linux 7.1
som _ikke_ compilerer med
* MSVC V6.0
* V7.0 Beta
* den ser ud til at gerenere rigtig pæn kode, når man kigger på assembler
koden
* det ser ud til at der ikke er noget run-time overhead fra exceptions,
bortset fra når der smides exceptions. Det er ret flot.

Den ser umiddelbart god ud.

Venlig hilsen

Mogens Hansen



Per Abrahamsen (12-10-2001)
Kommentar
Fra : Per Abrahamsen


Dato : 12-10-01 10:54

"Mogens Hansen" <mogens_h@dk-online.dk> writes:

> Det er heller ikke små krav du vil have opfyldt (som jeg opfatter dem):

Det er mere kriterier end krav.

> * Den skal være billig (helst gratis)

Ja.

> * Den skal genere god gode

Ikke dobbelt så lange kørsetider som i dag.

> * Den skal have en god C++ implementering

God og god, jeg kunne nok leve med Visual C++ hvis det ikke var for
alle de C4786 beskeder.

> * Den må gerne have et godt IDE

Eller bare et brugbart IDE. Men det er ikke et krav, jeg kan godt
leve med kommandolinien.

* Rimelig simpel at installere og bruge, så eg ikke skal bruge for
meget tid på support.

* Det er en fordel at det er hvad folk bruger i forvejen.

* Det er en fordel at den bygger på GCC.

> * V7.0 Beta

Hvad synes du i øvrigt om den? Ligger der gode ting og venter for de
folk der satser på Visual C++ ruten?


Mogens Hansen (12-10-2001)
Kommentar
Fra : Mogens Hansen


Dato : 12-10-01 11:52


"Per Abrahamsen" <abraham@dina.kvl.dk> wrote in message
news:rjhet5i3qd.fsf@ssv2.dina.kvl.dk...
> "Mogens Hansen" <mogens_h@dk-online.dk> writes:
>
> > * V7.0 Beta
>
> Hvad synes du i øvrigt om den? Ligger der gode ting og venter for de
> folk der satser på Visual C++ ruten?
>

Ja, det syntes jeg helt klart.
IDE'et ser pænt og godt ud (Anders Hejlsberg har vist haft en finger med i
spillet).
C++ implementeringen er væsentligt forbedret, men ligger stadig noget fra
hvad jeg (naivt) ville forvente af en moderne compiler fra en væsentlig
spiller på markedet. Jeg oplever, med den lille smule jeg har brugt den,
fortsat problemer for almindelig hverdags C++ (hvad det så ellers er). Hvis
man er lidt mindre blåøjet, har man jo tidligere set et mønster i at
Microsoft ikke har travt med at understøtte åbne standarder, som de ikke har
kontrol over.
Husk at det er godt 3 år siden at C++ standarden blev vedtaget, og den
angiveligt bedste C++ implementering (EDG) bliver implementeret af 3
personer, som også laver en Fortran og en Java front-end. Der er _ingen_
teknisk undskyldning for Microsoft, som jeg ser det.
Jeg har hørt at der er investeret store resourcer i en endnu bedre
kodegenerering - så det må være ret godt.

Venlig hilsen

Mogens Hansen



Rasmus Christian Kaa~ (11-10-2001)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 11-10-01 15:08
Per Abrahamsen (11-10-2001)
Kommentar
Fra : Per Abrahamsen


Dato : 11-10-01 15:03

thunderbear@bigfoot.com (Thorbjørn Ravn Andersen) writes:

> Jeg har tidligere været godt tilfreds med EMX fordi den tillod at lave
> statiske executables uden DLL'er. Dens EXE filer kører i DOS-mode
> under Windows, dette afhjælpes dog med RSX
> (http://www.mathematik.uni-bielefeld.de/~rainer/).

Den ser død ud (last update 1999).


Thorbjørn Ravn Ander~ (11-10-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 11-10-01 15:30

Per Abrahamsen <abraham@dina.kvl.dk> writes:

> thunderbear@bigfoot.com (Thorbjørn Ravn Andersen) writes:
>
> > Jeg har tidligere været godt tilfreds med EMX fordi den tillod at lave
> > statiske executables uden DLL'er. Dens EXE filer kører i DOS-mode
> > under Windows, dette afhjælpes dog med RSX
> > (http://www.mathematik.uni-bielefeld.de/~rainer/).
>
> Den ser død ud (last update 1999).

Det havde jeg overset. Beklager. Jeg brugte det under OS/2 i 1998,
og der var det rigtigt fint.

Det lader til at det skyldes at EMX er på vågeblusset
(http://borneo.gmd.de/pipermail/emx/), og da RSX er en port til
Windows af EMX er der ikke sket det store.

Men tanken om at kunne lave DLL-løse EXEfiler tiltaler mig stadig.

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Per Abrahamsen (11-10-2001)
Kommentar
Fra : Per Abrahamsen


Dato : 11-10-01 16:46

"Rasmus Christian Kaae" <macaw@hotmail.com> writes:

> kig på www.openwatcom.org

De har ikke et produkt endnu (kun et patch for folk med den ufri
Watcom).

Per Abrahamsen (12-10-2001)
Kommentar
Fra : Per Abrahamsen


Dato : 12-10-01 10:44

"Rasmus Christian Kaae" <macaw@hotmail.com> writes:

> Så er det www.openwatcom.com og her har jeg, tralla, fundet følgende link
> til dig : http://www.openwatcom.com/ftp/watcom-c-11.0c-b1.exe

Har du prøvet det? Så vidt jeg kunne se på websiden var det bare et
binært patch.

N/A (12-10-2001)
Kommentar
Fra : N/A


Dato : 12-10-01 11:52



Jonas Meyer Rasmusse~ (12-10-2001)
Kommentar
Fra : Jonas Meyer Rasmusse~


Dato : 12-10-01 22:32

Hvis du har adgang til "Effective STL", af scott meyers, kan du i appendix B
læse
om hvad der er galt med VC6.0
Og der kan man så finde ud af, at det står egentlig ret godt til med selve
compileren,
men det er derimod den STL version, som følger med der har problemerne.
Desuden skriver han, at ingen af de problemer han nævner, eksisterer i VC7.

Og når vi nu er inde på emnet, så har jeg lige tjekket, og de har tænkt på
dig.
I 7'eren er der et compiler flag som slår specifikke warnings fra.. så her
bliver du så fri for
dit værste problem.
Det eneste ærgerlige er at den stadig er i beta :)

Jonas



Per Abrahamsen (15-10-2001)
Kommentar
Fra : Per Abrahamsen


Dato : 15-10-01 12:16

"Jonas Meyer Rasmussen" <meyerDO_REMOVE_THIS@diku.dk> writes:

> Hvis du har adgang til "Effective STL", af scott meyers, kan du i
> appendix B læse om hvad der er galt med VC6.0 Og der kan man så
> finde ud af, at det står egentlig ret godt til med selve compileren,
> men det er derimod den STL version, som følger med der har
> problemerne.

Sjovt nok har jeg kun haft problemer med compileren, og gode
erfaringer med deres standard bibliotek.

> Og når vi nu er inde på emnet, så har jeg lige tjekket, og de har
> tænkt på dig. I 7'eren er der et compiler flag som slår specifikke
> warnings fra.. så her bliver du så fri for dit værste problem.

Det lyder godt.

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

Månedens bedste
Årets bedste
Sidste års bedste