9
votes

Avantages et inconvénients de Open Watcom

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.

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.

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.)?


1 commentaires

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.


6 Réponses :


4
votes

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.

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.


1 commentaires

Je pense à peine Netware's Netware qualifie de jeu MS DOS.



7
votes

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 mais cela peut sembler quelque peu péjoratif.

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.

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!).

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.

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é ( -wall -werror dans gcc et \ w4 \ Wx 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.

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.


6 commentaires

"ou même la transition pour 16 bits à 32 bits x86" - que voulez-vous dire? La prise en charge WATCOM pour 32B sous DOS était (probablement toujours est ) 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 . 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.



5
votes

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 . 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


2 commentaires

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).



4
votes

Avantages:

  • c'est gratuit
  • c'est une source ouverte. Vous pouvez modifier et ses bibliothèques d'exécution de votre façon que vous aimez
  • c'est crossplateform. Vous pouvez l'exécuter, entre autres plates-formes, sous Windows et Linux. Plus, vous pouvez créer des programmes avec elle pour différentes plates-formes, en utilisant une seule plate-forme

    Inconvénients:

    • Il est obsolète un peu, mais pas autant que dans le passé

0 commentaires

5
votes

Certaines personnes utilisent ici des expressions avec le compilateur Watcom (en réalité openwatcom) étant "daté". Alors qu'est-ce que cela signifie?

  • Cela pourrait signifier qu'il n'met en œuvre pas la dernière norme C. Comment De nombreux compilateurs «non datés» font?
  • Cela pourrait signifier qu'il ne fournit pas de cadres comme il est principalement un environnement pour C et Fortran et quelque part loin après cela vient un C ++ Mise en œuvre que je ne peux pas juger.
  • Cela pourrait signifier qu'il ne peut pas générer d'excellent code de montage de ordures c code.
  • Cela pourrait signifier qu'il ne soutient pas le développement X64.
  • Cela pourrait signifier que le débogueur est rudimentaire et soutient l'assemblage Débogage.

    maintenant à ce qu'il fait - en plus de soutenir le code de mode réel et protégé 16 bits:

    • Il produit un excellent code de mode protégé 32 bits dans la mémoire plate Modèle tout le monde utilise pour l'environnement Win32.
    • Ses capacités génératrices de code sont excellentes et il est correct là en haut avec des compilateurs plus «non datés».
    • Il est facile d'accorder un code multi-fileté à l'aide de son profileur.

      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?

      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.

      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.

      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?


2 commentaires

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 à.



1
votes
Positif (2)
  1. Le code et les projets ne sont pas bloqués comme les projets de Microsoft Visual Studio / C ++ (pas de centaines de fichiers VPROJ et d'autres fichiers et dossiers). Vous pouvez simplement générer un maquillage comme dans GCC (qui vaut mieux comprendre que les projets visuels de fabrication ...)
  2. Même l'installation ne prend pas de grand temps (sur X64 Win 7), dans la comparaison du projet visuel de 2 ++ Gbytes ...
  3. comparé à GCC, il peut sembler qu'il vaut mieux gérer Négatif
    1. CLIB est manquant: STRN ... FONCTIONS (STRNDUP, STRNCMPI, etc.), GETOPTLONG
    2. Aucun support de bras (@ 1er juillet 2015)
    3. en tant que éditeur, vous devez vraiment utiliser NotePad ++, pas l'éditeur interne

2 commentaires

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 ...