Question

Étant donné que dans certains poste sur StackOverflow il a été recommandé d'essayer de support multiple (dans ce cas, C / C ++) compilateurs si possible, étant donné que ces forces vous à code conforme plus standard et aide à trouver des bogues.

Alors je cherchais libre supplémentaire C / C ++ compilateurs que je pourrais ajouter le support pour mon projet (il est écrit en C / C ++ (les deux langues combinées)). J'ai trouvé ouvert Watcom être un candidat intéressant.

Alors ma question est: quels sont les avantages et les inconvénients du compilateur Open Watcom C / C par rapport aux autres (. Par exemple gcc / g ++, Visual C ++, etc.)

Était-ce utile?

La solution

Il y a probablement des avantages particuliers car si aucun code portable est votre objectif que vous essayez généralement de limiter votre code au sous-ensemble norme mis en œuvre par tous les compilateurs. Je dirais plus petit dénominateur commun , mais cela peut sembler un peu péjoratif.

Les avantages d'un compilateur sur un autre mensonge généralement soit les extensions qu'il fournit, les bibliothèques qu'il comprend, ou l'exécution du code généré, si la portabilité est votre objectif, vous êtes probablement intéressé dans aucun. Ce ne sont pas les avantages d'un compilateur sur une autre qui devrait vous intéresser dans ce cas, mais son adhésion et le respect des normes ISO.

Dans son incarnation commerciale plus tôt, Watcom était célèbre l'un des meilleurs compilateurs optimiseurs disponibles; Je doute cependant si elle a suivi le rythme de développement du processeur depuis lors, cependant (ou même la transition pour 16 bits à 32 bits x86!).

L'une caractéristique qui peut être considéré comme un avantage dans certains cas, est qu'il prend en charge DOS, OS / 2 et Windows, mais qui est probablement un avantage si la maintenance des systèmes existants est votre objectif. Les efforts pour porter à Linux et BSD et processeurs autres que x86 existent mais ne sont pas complets, alors que GCC est déjà là et a été pendant des années.

Je suggère que si vous pouvez soutenir GCC et VC ++, vous avez probablement l'indépendance du compilateur suffisant (mais recommanderiez-vous compilez avec des paramètres de haut niveau d'avertissement (GCC et -Wall -Werror \W4 \Wxin dans VC ++). Je pense que la portabilité du compilateur est un problème trivial par rapport à la portabilité OS, et ce que vous avez vraiment besoin de prendre en compte est le soutien de la bibliothèque multi-plateforme plutôt que compilateur support de code indépendant.

Si toutefois jouer avec des compilateurs est votre truc, considérez aussi le compilateur Digital Mars. Comme Watcom, cela a aussi le patrimoine du compilateur commercial, après avoir été le compilateur Zortech / Symantec C / C ++ dans une vie antérieure.

Autres conseils

Quelque chose Watcom a en faveur si vous êtes un « haxxor » est le fait que vous pouvez définir sur les conventions d'appel ordinaires en utilisant #pragma aux. A part cela, je ne vois aucune raison de tenter même d'utiliser un tel compilateur daté, sauf si vous avez eu d'horribles restrictions matérielles. Imo, il n'y a que 3 à craindre, GCC, ICC et MSVC

Certaines personnes utilisent des expressions ici avoir à faire avec le compilateur Watcom (en fait OpenWatcom) étant « daté ». Alors qu'est-ce que cela signifie?

  • Cela pourrait signifier qu'il ne met pas en œuvre la dernière norme C. Comment de nombreux compilateurs "non datés" faire?
  • Cela pourrait signifier qu'il ne fournit pas de cadres comme il est avant tout un environnement C et Fortran et quelque part loin après vient un C la mise en œuvre que je ne peux pas juger.
  • Cela pourrait signifier qu'il ne peut pas générer un excellent code assembleur à partir Code ordures C.
  • Cela pourrait signifier qu'il ne supporte pas le développement x64.
  • Cela pourrait signifier que le débogueur est rudimentaire et prend en charge l'assemblage débogage.

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

  • Il produit un excellent code en mode protégé 32 bits dans la mémoire plate utilisations tout le monde modèle pour l'environnement Win32.
  • Ses capacités de production de code sont excellents et il est jusqu'à il en haut avec plus de compilateurs « non daté ».
  • Il est facile de régler le code multi-thread utilisant son profileur.

Comment avez-vous « sentir » un compilateur? Personnellement, je ne sais pas comment faire. Est-il comment sont écrits les messages d'erreur? Est-ce dans les messages du journal de la console?

le plus grand système d'exploitation réseau mondial - Novell Netware - avait Watcom que son environnement de développement. Cela en dit beaucoup sur Watcom. Et de peur que tout le monde oublie: Netware est mort à cause de la gestion de la mauvaise commercialisation combinée à Redmond jeu de faute. Il ne meurt pas d'un manque d'excellence technologique.

Je suppose que ce que je suis en train de dire est que les gars qui ne savent pas de quoi vous parlez devrait peut-être un peu moins désireux de réponses d'écriture.

Je sais que je sais que tout est à obtenir ces points convoités et badges et ce que vous avez. Et la façon dont vous les obtenez est hors de propos, droit?

Le compilateur ouvert Watcom est quelque peu dépassée, et il se sent. Il est basé sur ce qui était il y a longtemps un bon compilateur pour faire des jeux MS DOS. À l'heure actuelle, il ne se conforme pas très standard et sa bibliothèque standard est à l'état immature.

Je préférerais compilateurs plus modernes et populaires comme Intel cc, g ++, VC ++ ou Clang. Pas sûr Borland C, ne l'ont pas essayé depuis longtemps.

Avantages:

  • il est gratuit
  • il est open source. Vous pouvez le modifier et de son exécution bibliothèques comme vous le souhaitez
  • il est multi-plateforme. Vous pouvez l'exécuter, entre autres plates-formes, sous Windows et Linux. De plus, vous pouvez créer des programmes avec elle pour les plates-formes différentes, en utilisant une plate-forme unique

Inconvénients:

  • il est obsolète un peu, mais pas autant que dans le passé
Positif (2)
  1. Le code et les projets ne sont pas comme les projets pléthorique dans Microsoft Visual Studio / C ++ (des centaines de vproj et d'autres fichiers et dossiers). Vous pouvez simplement générer un fichier makefile comme dans GCC (qui vaut mieux comprendre que les projets Visual Makefiles ...)
  2. Même l'installation ne prend pas grand temps (sur 64 bits Windows 7), en comparisation 2 ++ GBytes ... Visual Project
  3. Par rapport à GCC, il peut sembler qu'il vaut mieux gérer
Négatif
  1. clib manque: STRn ... (fonctions strndup, strncmpi etc.), getoptlong
  2. Pas de support ARM (@ 1er Juillet 2015)
  3. En tant que rédacteur, vous devez vraiment utiliser Notepad ++, pas l'éditeur interne
scroll top