Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Différence entre compilateurs !!

19 réponses
Avatar
Fr
Bonjour,

Je débute (depuis 2 jours) en C++, et je vois qu'il existe de très grosses
différences entre compilateurs.

J'ai testé DevC++ et C++Builder, avec le 1er ça met 30 secondes à compiler
un petit programme de 10 lignes et l'exécutable fais presque 700 Ko. Alors
qu'avec le 2eme, ça met moins d'une seconde et l'exécutable fait 10 Ko !

Pourquoi de tels différence ?

10 réponses

1 2
Avatar
Fred
Hello,

En effet, DevC++ (enfin, MinGW, son compilo) est extrèmement long à
compiler. En regardant le Task Manager, il semble que DevC++ lance un
genre de make, qui prend des plombes à compiler.

Egalement, je crois que MinGW compile en utilisant des DLLs qui servent
à "émuler" les appels système de Linux, ce qui ajoute d'autant au temps
de compile et à la taille de l'executable.

Je crois qu'il est possible d'utiliser le compilo de Microsoft,
disponible gratuitement, dans DevC++. Ainsi, tu as le meilleur des deux
mondes :)

Fred


wrote:
Bonjour,

Je débute (depuis 2 jours) en C++, et je vois qu'il existe de très grosses
différences entre compilateurs.

J'ai testé DevC++ et C++Builder, avec le 1er ça met 30 secondes à compiler
un petit programme de 10 lignes et l'exécutable fais presque 700 Ko. Alors
qu'avec le 2eme, ça met moins d'une seconde et l'exécutable fait 10 Ko !

Pourquoi de tels différence ?




Avatar
Fabien LE LEZ
On Mon, 26 Sep 2005 18:32:15 GMT, Fred :

Note en passant : en français, on écrit de haut en bas.
<http://www.giromini.org/usenet-fr/repondre.html>

Je crois qu'il est possible d'utiliser le compilo de Microsoft,
disponible gratuitement, dans DevC++. Ainsi, tu as le meilleur des deux
mondes


Le meilleur, faut le dire vite. J'ai dû abandonner le portage d'une
application sous VC++ car j'obtiens des "C1001: erreur du
compilateur".

Avatar
Fred
Fabien LE LEZ wrote:


Le meilleur, faut le dire vite. J'ai dû abandonner le portage d'une
application sous VC++ car j'obtiens des "C1001: erreur du
compilateur".




Avec VC++ 7.1?

Autant il m'est arrivé d'avoir des erreurs de ce type, autant à chaque
fois, c'était ma faute (même si c'est quand même un bug du compilo de ne
pas donner de message d'erreur correct). Pourrais-tu donner des exemples
de code qui ne passent pas?

Avatar
Fabien LE LEZ
On Mon, 26 Sep 2005 22:42:10 GMT, Fred :

Le meilleur, faut le dire vite. J'ai dû abandonner le portage d'une
application sous VC++ car j'obtiens des "C1001: erreur du
compilateur".


Avec VC++ 7.1?


Pour le coup, je ne sais plus trop. C'est celui qui est fourni avec
Visual C++ 2005 beta, et j'ai les mêmes erreurs aux mêmes endroits
avec le compilateur fourni avec Visual C++ 2003.

Autant il m'est arrivé d'avoir des erreurs de ce type, autant à chaque
fois, c'était ma faute (même si c'est quand même un bug du compilo de ne
pas donner de message d'erreur correct). Pourrais-tu donner des exemples
de code qui ne passent pas?


C'est assez difficile -- manifestement l'erreur vient d'un header de
OWL Next, qui fait une kyrielle de typedef. Si je remplace la ligne où
l'erreur est signalée par n'importe quoi d'autre (même un #pragma
message), j'ai toujours l'erreur sur cette ligne, d'où mon impression
que VC++ "sature".

Note que le même code passe sans problème quand j'installe le
compilateur Intel dans Visual Studio, de même qu'avec Borland C++ 5.5.


Avatar
BeBOSS
Merci pour vos conseils,

Alors je peux garder Borland C++ Builder 6 ? c'est une solution qui vas
m'assurer rapidité et stabilité ?
Avatar
Fabien LE LEZ
On Tue, 27 Sep 2005 07:08:40 +0200, BeBOSS :

Alors je peux garder Borland C++ Builder 6 ? c'est une solution qui vas
m'assurer rapidité et stabilité ?


Rapidité : oui, ce compilo est rapide.

Stabilité : je ne sais pas. Je n'ai pas assez testé cet IDE pour te
répondre.

Pérennité : vraisemblablement pas. Je ne parierais pas sur l'avenir de
Borland. Néanmoins, si tu te sers juste de l'IDE et du compilo, et pas
des bibliothèques "spéciales Borland" (VCL par exemple), changer d'IDE
dans quelques mois/années ne devrait pas poser de problèmes.

Avatar
PurL
Pérennité : vraisemblablement pas. Je ne parierais pas sur l'avenir de
Borland.


Vu le succes de Delphi, je vois pas comment Borland ne pourrait pas avoir
d'avenir...

Avatar
Aurelien Regat-Barrel
Le meilleur, faut le dire vite. J'ai dû abandonner le portage d'une
application sous VC++ car j'obtiens des "C1001: erreur du
compilateur".




Quand même VC++ 7.1 n'est pas trop mauvais, il est même plutôt bon. Un
débutant aura du mal à la planter.

Avec VC++ 7.1?



Pour le coup, je ne sais plus trop. C'est celui qui est fourni avec
Visual C++ 2005 beta, et j'ai les mêmes erreurs aux mêmes endroits
avec le compilateur fourni avec Visual C++ 2003.


beta1 ou beta2 :-)

VC++, sous Windows, c'est quand même un peu le compilateur de référence,
au sens celui pour lequel la plupart des libs sont fournies compilées,
etc...

Pour MingW c'est bizarre quand même 30 secondes de compilation. Il est
un peu plus lent certes, mais pas d'un facteur 30. Chez moi un
HelloWorld sous Devcpp compile et link en 2/3 secondes.

--
Aurélien Regat-Barrel



Avatar
Fabien LE LEZ
On Tue, 27 Sep 2005 09:29:00 +0200, Aurelien Regat-Barrel
:

Quand même VC++ 7.1 n'est pas trop mauvais, il est même plutôt bon. Un
débutant aura du mal à la planter.


S'il n'utilise pas de bibliothèques externes, peut-être.

beta1 ou beta2 :-)


Beta2 je crois (j'ai testé il y a quelques jours). Je n'ai pas vu
d'amélioration par rapport à la version 2003.

Pour MingW c'est bizarre quand même 30 secondes de compilation. Il est
un peu plus lent certes, mais pas d'un facteur 30. Chez moi un
HelloWorld sous Devcpp compile et link en 2/3 secondes.


Essaie donc de faire un Hello World avec wxWidgets, et regarde le
temps de link.

Avatar
fraca7
Hello,

En effet, DevC++ (enfin, MinGW, son compilo) est extrèmement long à
compiler. En regardant le Task Manager, il semble que DevC++ lance un
genre de make, qui prend des plombes à compiler.


Oui, la compilation sous Dev-C++ passe par GNU make. Etonnant tout de
même qu'il y ait une telle différence.

Egalement, je crois que MinGW compile en utilisant des DLLs qui
servent à "émuler" les appels système de Linux, ce qui ajoute d'autant
au temps de compile et à la taille de l'executable.


Non, ça c'est Cygwin. MingGW est un environnement natif Win32. En ce qui
concerne la taille de l'exécutable, c'est bizarre. Peut-être que le
project est configuré en debug, avec les bibliothèques liées statiquement...

1 2