Compilateurs...

Compilateurs... - C++ - Programmation

Marsh Posté le 06-02-2004 à 08:31:57    

Quel est le 'meilleur' compilateur C++ ?
 
Sous windows est-ce VS c++ 7 ?
Sous linux g++ ? Dans quel IDE ?

Reply

Marsh Posté le 06-02-2004 à 08:31:57   

Reply

Marsh Posté le 06-02-2004 à 08:32:39    

défini meilleurs, après on verra :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 06-02-2004 à 09:03:20    

Le plus proche de la norme C++.
 
Et puis s'il est gratuit c'est encore mieux lol
Je suis en train de regarde si une version sous win de g++ existe car on m'a pas mal venté g++.

Reply

Marsh Posté le 06-02-2004 à 09:13:39    

g++ existe sous Win et de tte maniere ca sera trjrs mieux que VC 7 ....
 

Reply

Marsh Posté le 06-02-2004 à 09:58:51    

et bien s'il existe aide moi car je cherche je cherche tout le monde en parle mais je ne le trouve pas !

Reply

Marsh Posté le 06-02-2004 à 10:29:47    

Mingw32 : http://www.mingw.org/
 
Avec un GUI autour ça donne DevCpp mais je ne sais pas vraiment ce que vaut ce dernier.


Message édité par Kristoph le 06-02-2004 à 10:30:35
Reply

Marsh Posté le 06-02-2004 à 10:36:24    

DEV C++ c bien :)

Reply

Marsh Posté le 06-02-2004 à 12:23:10    

[:ban]

Reply

Marsh Posté le 08-02-2004 à 01:31:41    

g++ a de nombreux problème, des choses non implémentés comme le mot clef export, officiellement car ils n'ont pas trouvés de solution propre pour l'implémenter. Et chez moi il a des probs de perfs sous win.
Pour VC (6, pas essayé la 7) jai eu de mauvaises experiences sur des effets "aléatoires" de mon code : effets differents a chaque compil, prob avec la memoire (entier qui change de valeurs tout seul... oui ca pourrait venir aussi de mon code, mais ca passe sans prob avec gcc/g++)..., et pas mal de plantage du compilo lui meme a la compile, sinon niveau perf à la compil comme a l'utilisation ça va mieu qu'avec gcc.
Sinon pour coder sous win devc++ et sharp develop pour du .net
sous lin emacs ou kdevelop (kate également dans l'environnement kde est plutot sympatique)
J'ai pareil eu des probs avec visual (des locks sur le ntfs qui veulent pas partir sans reboot...) et je trouve le rad assez sale a l'utilisation.
Sinon le compilo de codewarrior serait apparement plutot bon, et celui de borland également mais pas a la norme (oui dire, jai perso pas essayé en dehors de petites appli avec le jeu de lego C++Builder)

Reply

Marsh Posté le 08-02-2004 à 01:40:27    

Citation :

g++ a de nombreux problème, des choses non implémentés comme le mot clef export, officiellement car ils n'ont pas trouvés de solution propre pour l'implémenter. Et chez moi il a des probs de perfs sous win.


 
tu peux oublier le support de export je crois bien

Reply

Marsh Posté le 08-02-2004 à 01:40:27   

Reply

Marsh Posté le 08-02-2004 à 01:42:25    

[:rofl]

Reply

Marsh Posté le 08-02-2004 à 10:23:58    

Le compilo Intel est pas mal ...

Reply

Marsh Posté le 08-02-2004 à 10:32:55    

j'utilise VC6 a l'ecole, mais pas mal de plantage du compilo en lui meme, comme dit plus haut, et j'ia essayé dev-c++, c'est vraiment pas mal !


---------------
.
Reply

Marsh Posté le 08-02-2004 à 11:33:30    

gilou a écrit :


Euh, c'est ou dans la spec du C ou du C++ ce mot clé :whistle:  
A+,


 
Chapitre 14 alinéa 6 de la norme ISO/IEC 14882 :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 08-02-2004 à 11:53:10    

ganjo a écrit :

celui de borland également mais pas a la norme (oui dire, jai perso pas essayé en dehors de petites appli avec le jeu de lego C++Builder)


 
le problème avec celui de Boland c'est que t'as le choix de plusieurs normes. Et si tu veux jouer avec les Légo t'es obligé de choisir la norme "Borland" [:ddr555]
Par contre pour ce qui est du suivi de la norme en choisissant une des autres options, ça je n'en sais rien du tout.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-02-2004 à 15:44:45    

VC++ 6 commence à dater... Ca fait 2 ans que la version 7 est sortie. VC++ 6, j'ai pas eu trop de probleme avec, à l'exception des templates ou là oui il plante facilement (en dehors de la STL). Sinon, il marche encore plutot bien pour un compilo qui va sur sa 6° année (sorti avant la norme C++). Comparer VC++ avec g++ n'a pas de sens. Devcpp, j'avais essayé un moment. La 5 ne voulait rien compiler. J'ai pris la 4 et quelque, au bout de XXX sauvegardes il s'emballait et je devais le killer. Souvenir plutot décevant... Mais, ce qu'il faut voir, c'est que sous Windows VC++ est quasi incontournable. La majorité des lib sont refourgués pour cet environnement (car c'est + qu'un compilo rappelons le). C'est un point très iportant à mon avis.
 

Citation :

Chapitre 14 alinéa 6 de la norme ISO/IEC 14882


Ca me fait penser a 1 question : vous avez un lien vers une version online potable de la norme ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-02-2004 à 15:47:07    

kadreg a écrit :


 
Chapitre 14 alinéa 6 de la norme ISO/IEC 14882 :o


Vi vi, j'avais retiré mon post 1mn apres l'avoir posté, en y repensant.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-02-2004 à 15:51:14    

HelloWorld a écrit :

VC++ 6 commence à dater...


Euh, de plus la seule version valable pour discuter des capacites de ce compilo, c'est la derniere, livrée avec VS.NET 2003 (version 8??), et qui pretend avoir la norme actuelle implementée a 98%. Je ne vois pas l'interet de discuter des capacites de versions obsoletes de produits.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-02-2004 à 16:18:30    

VC++ 2003 = VC++ 7.1


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-02-2004 à 16:29:53    

HelloWorld a écrit :


Ca me fait penser a 1 question : vous avez un lien vers une version online potable de la norme ?


http://www.kuzbass.ru:8086/docs/isocpp/
 
mais c'est le draft. le document officiel est payant [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-02-2004 à 16:30:47    

Harkonnen a écrit :


mais c'est le draft. le document officiel est payant [:sinclaire]


 
J'aimerais bien connaitre les différences entre le final draft et le final


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 08-02-2004 à 16:31:17    

Reply

Marsh Posté le 08-02-2004 à 16:37:36    

kadreg a écrit :


 
J'aimerais bien connaitre les différences entre le final draft et le final  


du newsgroup comp.lang.c++ :
 

Citation :


Only formatting changes and a few obvious typographical corrections.


 
http://groups.google.fr/groups?hl= [...] ch.att.com


Message édité par Harkonnen le 08-02-2004 à 16:38:28

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-02-2004 à 16:43:50    

t'es gentil, ça ne veut stictement rien dire. les bibliothèques portables sont blindées de #ifdef et boost en contient un maximum pour fonctionner avec les produits de microsoft et borland

Reply

Marsh Posté le 08-02-2004 à 16:44:46    

taz a écrit :

t'es gentil, ça ne veut stictement rien dire. les bibliothèques portables sont blindées de #ifdef et boost en contient un maximum pour fonctionner avec les produits de microsoft et borland


 
ca fait mal au cul hein ?  

Reply

Marsh Posté le 08-02-2004 à 16:45:24    

chrisbk a écrit :


 
ca fait mal au cul hein ?  
 

:o je suis sérieux

Reply

Marsh Posté le 08-02-2004 à 16:46:52    

taz a écrit :

t'es gentil, ça ne veut stictement rien dire. les bibliothèques portables sont blindées de #ifdef et boost en contient un maximum pour fonctionner avec les produits de microsoft et borland

rooo pov' ch'tio

Reply

Marsh Posté le 08-02-2004 à 16:47:17    

taz a écrit :

:o je suis sérieux


 
ouais. ca fait tres "Obligé de se rabattre sur des excuses bidon" quand meme. C'est si douloureux que ca que d'admettre que VC s'approche d'une implantation de la norme ? J'imagine :o
Bon, ca casse un peu ton fond de commerce, mais vu que les versions VS<2003 sont encore courantes, t'as encore quelques moments VS bashing devant toi, t'en fais pas [:icon7]

Reply

Marsh Posté le 08-02-2004 à 16:48:41    

chrisbk a écrit :


 
ouais. ca fait tres "Obligé de se rabattre sur des excuses bidon" quand meme. C'est si douloureux que ca que d'admettre que VC s'approche d'une implantation de la norme ? J'imagine :o
Bon, ca casse un peu ton fond de commerce, mais vu que les versions VS<2003 sont encore courantes, t'as encore quelques moments VS bashing devant toi, t'en fais pas [:icon7]

En + c'est tellement bidon comme excuse qu'on se demande pkoi ils ont pas mis des #ifdef pour gcc pour qu'il ait lui aussi 100% de réussite :pfff:

Reply

Marsh Posté le 08-02-2004 à 16:50:15    

*Syl* a écrit :

En + c'est tellement bidon comme excuse qu'on se demande pkoi ils ont pas mis des #ifdef pour gcc pour qu'il ait lui aussi 100% de réussite :pfff:  


 
hoho, superbe attaque feintée de syl, que diable va repondre taz a ca ? Va t'il nous ressortir le coup du "complot mondial MS" ?

Reply

Marsh Posté le 08-02-2004 à 16:52:30    

*Syl* a écrit :

En + c'est tellement bidon comme excuse qu'on se demande pkoi ils ont pas mis des #ifdef pour gcc pour qu'il ait lui aussi 100% de réussite :pfff:  

c'est comme vous voulez. mais le regression log d'une bibliothèque telle que boost n'est en aucun cas un indicateur de conformance au standard. si vous ne comprenez pas ça tant pis pour vous. vous faites les malins en citant a.koenig, et bien il est le premier à mettre en garde contre ce genre de conclusion. j'efface mon drapeau. tout va pour le mieux dans le meilleur des mondes

Reply

Marsh Posté le 08-02-2004 à 16:53:43    

taz a écrit :

c'est comme vous voulez. mais le regression log d'une bibliothèque telle que boost n'est en aucun cas un indicateur de conformance au standard. si vous ne comprenez pas ça tant pis pour vous. vous faites les malins en citant a.koenig, et bien il est le premier à mettre en garde contre ce genre de conclusion. j'efface mon drapeau. tout va pour le mieux dans le meilleur des mondes


 
En fait,on stigmatise ta mauvaise foi patente des qu'il s'agit de VS. Et la, c'est flagrant. Les meme tests montreraient VS ave des fails de 75% que tu les brandirait comme preuves indiscutables

Reply

Marsh Posté le 08-02-2004 à 17:54:03    

Citation :

mais c'est le draft. le document officiel est payant [:sinclaire]


Voui, j'étais allé sur iso.com et ça a pas tardé avant de me demander de payer... :(
Pour VC++ 7.1, faut savoir admettre qu'il est incomparable avec VC++ 6. C'est ça qui me lourde dans la communauté Linux, refuser d'amettre que certaines critiques de MS d'y a 5 ans ne sont plus valables aujourd'hui. Je ne m'avanturerais pas à dire si VC++ 7.1 est meilleur que g++, mais ce qui est sûr, c'est que ce sont tous les deux de très bons compilateurs C++.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-02-2004 à 17:54:33    

Au fait Taz, tu as quoi comme versions de VS pour juger ainsi VC++ ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-02-2004 à 17:55:44    

HelloWorld a écrit :

Citation :

mais c'est le draft. le document officiel est payant [:sinclaire]


Voui, j'étais allé sur iso.com et ça a pas tardé avant de me demander de payer... :(
Pour VC++ 7.1, faut savoir admettre qu'il est incomparable avec VC++ 6. C'est ça qui me lourde dans la communauté Linux, refuser d'amettre que certaines critiques de MS d'y a 5 ans ne sont plus valables aujourd'hui. Je ne m'avanturerais pas à dire si VC++ 7.1 est meilleur que g++, mais ce qui est sûr, c'est que ce sont tous les deux de très bons compilateurs C++.


 
tu sais, y'en a encore qui te sortent le document de Carmack sur DX3 pour te dire que DX c'est de la merde [:spamafote]

Reply

Marsh Posté le 08-02-2004 à 17:56:38    

HelloWorld a écrit :

Au fait Taz, tu as quoi comme versions de VS pour juger ainsi VC++ ?

Y'en a pas parce que ça pue spa libre :o

Reply

Marsh Posté le 08-02-2004 à 19:20:49    

VS 6 (98) n'est pas stable, la meilleur version est sans contest, VS.NET et de très loin, pour ce qui est de savoir quel est le meilleur compilo, ça depend de ce que tu veux faire avec. Pas la peine d'utiliser une pelle mecanique pour planter des tulipes.

Reply

Marsh Posté le 08-02-2004 à 19:22:37    

Je viens de passer le test de casteyde à la moulinette. Son site n'est pas du tout favorable à VC++ (mais il date, il a testé avec une version beta de VC++ 7.0).
http://casteyde.christian.free.fr/cpp/benchmarks/
Voici les résultats avec VC++ 7.1 :

Citation :


The char type is handled correctly.
The wchar_t type is recognized.
The bool type is recognized.
Function parameters can have default values.
Functions can be overloaded.
The inline keyword is recognized.
Variable length argument lists are handled in the standard way.
The for uses the new name lookup conventions.
Unions are supported.
Enum are supported.
Bitfields are supported.
The const keyword is supported.
The volatile keyword is supported.
References to variables are supported.
References to function are supported.
References to member are supported.
Trigraphs sequences are supported.
The macro __LINE__ is supported.
The macro __FILE__ is supported.
The macro __DATE__ is supported.
The macro __TIME__ is supported.
The macro __cplusplus is supported.
Simple classes are supported.
const methods are supported.
Methods can have default parameters.
Methods can be overloaded.
Constructors are supported.
Copy constructors are accepted.
The explicit keyword is supported.
Static members are supported.
Static methods are supported.
Class operators can be redefined.
Global operators can be redefined.
Prefixed operator++ are supported.
Postfixed operator++ are supported.
Allocators new and delete can be redefined.
Operator delete with two parameters can be redefined.
Placement is supported on operator new.
Placement is supported on operator delete.
Allocators new[] and delete[] can be redefined.
MISSING FEATURE : This compiler doesn't support redefinition of operator delete[
] with two parameters.
Placement is supported on operator new[].
Placement is supported on operator delete[].
set_new_handler is supported.
Casting operators can be redefined.
Comparison operator can be redefined.
Operator operator& can be redefined.
Operator operator* can be redefined.
Virtual methods are supported.
Abstract classes are supported.
Pointer to member is supported.
Pointer to method is supported.
Simple inheritance is supported.
Multiple inheritance is supported.
Virtual classes are supported.
The keyword mutable is supported.
Friends functions are supported.
Friend classes are supported.
Exceptions are supported.
catch (...) is supported.
Try constructors are supported.
MISSING FEATURE : This compiler doesn't support exception lists for functions.
set_unexpected is supported.
RTTI is supported.
Operator dynamic_cast is supported.
Operator static_cast is supported.
Operator const_cast is supported.
Operator reinterpret_cast is supported.
Template functions are supported.
The typename keyword is accepted in place of the class keyword.
Template classes are supported.
Non type template are supported.
Default type values for templates are supported.
Default value for non type templates are supported.
Total specialization is supported.
Partial specializations are supported.
The keyword typename is supported in template class definitions.
Inlined template methods are supported.
Template methods can be defined outside template classes.
Template template parameters are supported.
Implicit template instanciation is supported.
Explicit template instanciation is supported.
Non instanciated templates are not parsed.
MISSING FEATURE : This compiler doesn't support the export keyword.
Friend functions can be template.
Template classes can have non template friends.
Named namespaces are supported.
Anonymous namespaces are supported.
Aliases of namespace are supported.
Using declaration are supported.
Using declarations can be used to restore access rights modified through inherit
ance.
Using directives are supported.


J'ai dû activer les informatiosn de types à l'exécution (/GR) sinon ça plante avec le dynamic_cast. Mais même avec ça apparement il passe pas le test puisqu'il est dit que c'est pas supporté. Voici les define que j'ai du activer :

Code :
  1. #define CHAR_IS_A_REAL_TYPE
  2. #define CORRECT_CONSTNESS_CHECK
  3. #define CORRECT_VOLATILE_CHECK
  4. #define EXPORT_NOT_SUPPORTED


Les 3 premiers sont un bon point, le dernier on s'y attendais.
Mis à part celui-là, les erreurs sont donc détectées au runtime.
Je ne crois pas qu'il y ait des flags spécifiques de compilation qui en fasse sauter. Pour la liste d'exception, j'ai droit à un warning :

Code :
  1. void authorized_exception_list_test1(void) throw(int, char)
  2. {
  3. throw (7.53);
  4. }
  5. Spécification d'exception C++ ignorée sauf pour indiquer qu'une fonction n'est pas __declspec(nothrow)


Ca explique peut être le non support des listes d'exception au runtime.
 
edit : dynamic_cast fonctionne en activant la compilation avec RTTI.


Message édité par HelloWorld le 08-02-2004 à 21:07:12

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-02-2004 à 19:24:37    

il supporte pas dynamic_cast, ça craint un peu quand même :/


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-02-2004 à 19:25:52    

Harkonnen a écrit :

il supporte pas dynamic_cast, ça craint un peu quand même :/


 
Sachant que je l'ai déjà utilisé avec le VC6, j'en suis surpris :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed