8
votes

Meilleur environnement pour porter le code C / C ++ de Linux à Windows

J'aimerais faire un grand projet de mien construisable sur les plates-formes Windows. Le projet lui-même est écrit dans C / C ++ après les normes POSIX, avec certaines dépendances de la bibliothèque telles que LibXML2, Libcurl, etc. Je suis plus un développeur Linux plutôt qu'un développeur Windows, je n'ai donc aucune idée de la suite compilatrice que je devrais utiliser pour porter le code. Lequel offre plus de compatibilité avec GCC 4.4.3 J'utilise maintenant?

Mon projet a besoin de flex et de bison, existe-t-il un environnement "prêt à utiliser" pour porter de tels projets sur des plates-formes Windows?

Merci.


1 commentaires

Un bon environnement de soleil aéré avec des chaises et du café confortables.


4 Réponses :


1
votes

Je doute vivement soit Cygwin ni Mingw, jusqu'à 4.4.3 encore. Je parierais à pouvoir mettre à niveau le compilateur à Mingw pour être plus facile.

Vous aurez besoin de Cygwin si vous utilisez réellement des trucs spécifiques Linux. Les bibliothèques que vous avez répertoriées ne sont pas un problème que je ne pense pas. POSIX pourrait être, selon.


3 commentaires

@Neil: La distribution officielle de Mingw a une garantie de calendrier de qualité et de libération. Des projets tels que KDE et Nokia QT s'appuient sur le Mingw officiel. BTW, ce n'est pas toujours une bonne idée de sauter de 4.4.3 directement à 4.5.0, en cas d'incompatibilité. BTW, le MINGW officiel a également 4,5,0. La version précédente qu'elle distribue était 4.4.0, et non la correction / mise à jour 4.4.3.


@Viet Je n'ai eu aucun problème (le contraire en fait) avec la version TD que j'ai recommandée dans ma réponse. Je n'ai jamais utilisé la version Nuwen au sérieux, mais il est facile à installer, alors j'ai pensé que je le mentionnerais. Et je ferai presque n'importe quoi pour éviter d'utiliser le site Web Mingw :-)


@Neil: J'ai favorisé la page de téléchargement officielle Mingw en fait, pour éviter de lire ce site spaghetti;)



4
votes

Si vous n'utilisez aucun appels de système UNIX afin que vous puissiez exécuter sur Windows librement. Il y a aussi Flex & Bison pour Windows: http://gnuwin32.sourceforge.net/packages.htmlle a>. Vous pouvez aller de l'avant avec Mingw: http://www.mingw.org/ .

Si vous avez des appels système Unix, vous devez utiliser Cygwin: http://www.cygwin.com/ , http://en.wikipedia.org/wiki/cygwin . < / p>


2 commentaires

Je vais probablement porter le code à l'aide de directives de précompilation pour déterminer le système d'exploitation que je suis sur, alors même s'il y a des appels UNIX, ce n'est pas un gros problème.


Si cela ne vous dérange pas d'écrire des appels système spécifiques au système d'exploitation, les macros avec Mingw sont suffisants. Si vous écrivez le code Windows pour remplacer ces appels de système spécifiques à unix, utilisez Cygwin. Mais rappelez-vous que la DLL de Cygwin est gpped: Cygwin.com/ml/cygwin /1999-07/msg00348.html .



12
votes

Si c'était moi, j'installerais ce qui suit:


2 commentaires

BTW, Sourceforge.net/projects/mingw/files a la plupart des outils mis à jour sur UNIX / Linux Pour les fenêtres. @Simone: cette URL a la version la plus mise à jour de Bison & Flex dont vous avez besoin. Gnuwin32 a des versions historiques mais sont assez bonnes. C'est à vous de choisir.


Neil - Merci d'avoir souligné Twilight Dragon - j'ai été frustré par les installateurs de Mingw.org et la chronologie de la libération lente et je ne savais pas que des distributions alternatives étaient là-bas.



1
votes

Une belle nouvelle alternative est Cygnal . L'idée de base:

  • Premièrement, compilez le code sous Cygwin pour Cygwin lui-même à l'aide de son "Native" Toolchain (Not Mingw).
  • Ensuite, déployez le programme avec le Version Cygnal de la DLL Cygwin.

    cygnal est une fourchette de la DLL de cygwin primaire qui change certains comportements trop Unix comme.

    La devise de Cygwin est "Obtenez ce sentiment de Linux sur Windows". Tons cygnaux en baisse de ce sentiment; Il ramène une partie du sentiment de Windows aux programmes, de sorte que ces programmes fonctionnent pour les utilisateurs Windows en dehors de l'environnement Cygwin à l'aide de conventions Windows.

    Les programmes comprennent les chemins natifs, etc. Aucune des fonctionnalités de l'API riche en cygwin n'est supprimée, seule une petite partie de celle-ci est ajustée.


0 commentaires