Comme dans certains posts sur Stackoverflow, il a été recommandé d'essayer de prendre en charge plusieurs compilateurs (dans ce cas de C / C ++) si cela est réalisable, car cela vous oblige à coder plus de conformité standard et aide à trouver des bugs. P>
Alors je cherchais des compilateurs C / C ++ gratuits supplémentaires, je pouvais ajouter du support à mon projet (il est écrit C / C ++ (les deux langues combinées)). J'ai trouvé que Open Watcom soit un candidat intéressant. P>
Donc, ma question est la suivante: quels sont les avantages et les inconvénients du compilateur Open Watcom C / C ++ en comparaison d'autres (par exemple GCC / G ++, Visual C ++ etc.)? P>
6 Réponses :
Le compilateur Open Watcom est quelque peu obsolète et on se sent. Il est basé sur ce qui s'est passé il y a longtemps un bon compilateur pour faire des jeux MS DOS. Actuellement, ce n'est pas très standard conforme et sa bibliothèque standard est en état immature. P>
Je préférerais des compilateurs plus modernes et populaires tels que Intel CC, G ++, VC ++ ou Clang. Pas sûr de Borland C, n'ai pas essayé longtemps. p>
Je pense à peine Netware's Netware qualifie de jeu MS DOS.
Il n'y a probablement pas d'avantages particuliers car si le code portable est votre objectif, vous essayez généralement de restreindre votre code au sous-ensemble standard mis en œuvre par tous les compilateurs. Je dirais le dénominateur commun le plus bas em> mais cela peut sembler quelque peu péjoratif. P>
Les avantages d'un compilateur sur un autre se trouvent généralement dans les extensions qu'il fournit, les bibliothèques qu'il inclut, ou les performances du code généré, si la portabilité est votre objectif, vous n'êtes probablement pas intéressé à l'un ni l'autre. Ce ne sont pas les avantages d'un compilateur sur un autre qui devrait vous intéresser dans ce cas, mais plutôt son adhésion à la conformité et au respect des normes ISO. p>
Dans son incarnation commerciale antérieure, WatCom était célèbre l'un des meilleurs compilateurs d'optimisation disponibles; Je doute toutefois que cela ait suivi le rythme du développement du processeur depuis lors (ou même la transition pour 16 bits à 32 bits x86!). P>
Son une seule caractéristique pouvant être considérée comme un avantage dans certains cas est qu'elle prend en charge DOS, OS / 2 et Windows, mais ce n'est probablement qu'un avantage si la maintenance des systèmes hérités est votre objectif. Les efforts visant à le porter à Linux et à la BSD et aux transformateurs autres que X86 n'existent, mais ne sont pas complets, tandis que GCC est déjà présent et qu'il a été depuis des années. p>
Je suggérerais que si vous pouvez prendre en charge GCC et VC ++, vous disposez probablement d'une indépendance suffisante du compilateur (mais vous vous recommander de compiler avec des paramètres de niveau d'alerte élevé ( Si toutefois jouer avec compilers est votre chose, considérez également le compilateur Digital Mars . Comme Watcom, cela dispose également du patrimoine du compilateur commercial, ayant été le compilateur Zortech / Symantec C / C ++ dans une vie antérieure. P> -wall -werror code> dans gcc et \ w4 \ Wx code> dans VC ++). Je pense que la portabilité du compilateur est une question triviale par rapport à la portabilité du système d'exploitation, et ce que vous devez vraiment prendre en compte est la prise en charge de la bibliothèque croisée plutôt que le support de code indépendant compilateur. P>
"ou même la transition pour 16 bits à 32 bits x86" i> - que voulez-vous dire? La prise en charge WATCOM pour 32B sous DOS était (probablement toujours est b>) l'une des meilleures. Si vous souhaitez effectuer un mode protégé 32b pour DOS environ 1993 (comme la plupart des jeux de cette époque, y compris des choses comme Doom), vous avez choisi Watcom Compiler et DOS Extender. ... Malheureusement, il semble être assez mort depuis 2012, et il n'est certainement pas au courant de X86-64, ou C ++ 11, c'est-à-dire que votre réponse est en quelque sorte valable, c'était un peu plus tard, que le rythme était Non gardé, au 32b moment, c'était tout à fait devant le pack.
@ Ped7g Il y a une fourchette entretenue à github.com/open-watcom/open-watcom- v2 qui est activement développé et explicitement donne 64- support de bits comme son objectif principal.
@ Ped7G: J'ai manqué votre commentaire de près d'un an. Ce que je voulais dire, c'était la transition vers 32 bits systèmes d'exploitation i>. Tout ce que DPMI Kudge Stuff peut fonctionner dans Win32 mais il est à peine élégant.
@SsSokolow: Un compilateur WatCom 64 bits ne serait de beaucoup d'intérêt que s'il était significativement mieux que d'autres compilateurs de 64 bits que pour les compilateurs de 16 bits (et 32 bits DPMI). Je doute d'une manière ou d'une autre, mais je devrais l'expliquer pour être sûr - je ne suis pas sûr qu'il y ait beaucoup de mérite dans cela plus longtemps pour les applications motorisées.
@Cliffordais Je voulais juste corriger la déclaration trompeuse selon laquelle elle est morte depuis 2012 et n'a pas de soutien 64 bits. (Mon utilisation est limitée à la compilation croisée rétrocutée, donc je pense que nous sommes d'accord contraire.)
@ssokolow assez juste. C'est un commentaire d'un an dans un poste de huit ans. Il peut y avoir peu d'avantages pour maintenir la monnaie de cette réponse.
Quelque chose watcom a en faveur si votre "HAXXOR" est le fait que vous pouvez définir des conventions d'appel ordinaires en utilisant #pragma aux code>. Outre cela, je ne vois aucune raison d'essayer d'utiliser un compilateur aussi daté que si vous n'avez pas eu d'horribles restrictions matérielles. IMO, il n'y a que 3 à craindre, GCC, ICC et MSVC P>
Vous inquiétez-vous de Clang aujourd'hui?
@Janustroelsen: Je suis suivi de la cliquetère de près depuis quelques années, avec les nombreuses progrès de LLVM sur Windows, Perf augmente de la compilation, de la liaison et du code généré, des architectures cibles et des outils, je le mettais à l'avant de cette liste. Je préfère cela sur GCC; Bien que comme windows dev i, j'utilise principalement MSVC (bien qu'il existe maintenant un plug-in Clang pour VS).
Avantages: P>
Inconvénients: P>
Certaines personnes utilisent ici des expressions avec le compilateur Watcom (en réalité openwatcom) étant "daté". Alors qu'est-ce que cela signifie? P>
maintenant à ce qu'il fait - en plus de soutenir le code de mode réel et protégé 16 bits: P>
Comment "ressentez-vous" un compilateur? Je ne sais pas comment faire ça. Est-ce la façon dont les messages d'erreur sont écrits? Est-ce dans les messages sur le journal de la console? P>
Le plus grand système d'exploitation de réseau mondial - Novell NetWare - avait Watcom comme environnement de développement. Cela dit beaucoup sur Watcom. Et de peur que quiconque oublie: NetWare est décédé en raison d'une mauvaise gestion du marketing associée à la lutte anti-redmandes. Il n'a pas mouru de manque d'excellence technologique. P>
Je suppose que ce que j'essaie de dire, c'est que vous ne savez pas ce dont vous parlez devrait peut-être être un peu moins désireux d'écrire des réponses. P>
Je sais que je sais que tout est d'obtenir ces points convoités et les badges et ce que vous avez. Et comment vous les obtenez est hors de propos, non? P>
Le support C ++ de OW est abyssal. C'était tellement avant le C ++ 11. Autre que cela va bien (bien dans certaines régions, en fait).
@ALEX: Qu'est-ce qu'ils font le mieux est C (bien que je pense que Fortran était à l'origine leur seul produit et probablement assez bon car ils ont survécu et n'étaient pas sans concurrents). Pourquoi ils ont commencé à jouer avec C ++ se situe au-delà de moi. Quoi qu'il en soit, j'utilise Ow pour des protoyages rapides (avant cela - il y a 15 ans - c'était QuickC). Pour X64, j'ai utilisé pellec pendant un moment, mais j'ai maintenant une Eclipse de GCC + travaillant sur Windows 7 que je m'habitue à.
Vous pouvez utiliser Makefiles avec Visual C ++ tout ce que vous voulez, personne ne vous oblige à utiliser des projets Visual Studio. Il ne reste plus un peu de point dans la comparaison d'un paquet IDE multilingue / plate-forme à part entière avec un simple compilateur ...
Oui, mais essayez un projet d'interface graphique dans Visual Studio sans l'IDE / Environnement ...
Pour quiconque qui se soucie. Je l'utilise actuellement pour le développement commercial et cela m'a été bon. Bien que je ne l'utilise que pour la compilation C jusqu'à présent. Le réglage d'optimisation est là aussi. J'aime beaucoup comment il est 100% gratuit. De plus, je n'ai jamais pris au monde de la CCG aussi bien. Je trouve plus de temps perdu en essayant d'obtenir mes configurations avec GCC. Open Watcom a tout ce dont vous avez besoin de la boîte pour une plate-forme croisée C / C ++ ou Fortran. Moins de temps vissoir avec des choses, plus de temps en train de faire des applications.