Comment programmer pour Windows dans Ubuntu?

24

Est-il possible de créer des applications de console Windows (C ++ ou C #) dans l'IDE d'Ubuntu (par exemple Anjuta) et de le compiler pour Windows?

Behzadsh
la source
1
mingw est le choix évident pour la compilation croisée, mais je ne sais pas comment l'intégrer à Anjunta. J'ai vu un tutoriel sur l'intégration de mingw et kdevelop ici: forums.gentoo.org/viewtopic-t-292180.html peut-être que l'une des personnes recommandant à mingw de connaître une intégration avec Anjunta tutorial?
RobotHumans

Réponses:

21

Vous voulez faire de la compilation croisée, qui est un moyen de compiler du code pour des plates-formes autres que celle sur laquelle vous êtes, en particulier lorsque le processeur est complètement différent. Fondamentalement, vous devez installer tous les en-têtes pour votre cible (c'est-à-dire Windows), puis dire au compilateur qu'il effectue une compilation croisée afin qu'il ne fasse pas certaines vérifications du système et pointe à la place vers des répertoires non standard.

En fonction de la langue, vous pourriez trouver utile de faire une recherche ou une question en particulier, ou si vous faites c de base, vous pouvez utiliser les outils MinGW et le même type d'outils de compilation basés sur Linux qui utilisent gcc:

sudo apt-get install gcc-mingw32

Il existe un bon guide pour la compilation croisée qt / win32 à l'aide des outils MinGW .

Martin Owens -doctormo-
la source
12

Vous devriez jeter un œil à MingW . Il fournit un compilateur compatible gcc pour Windows.

Il existe une version multiplateforme que vous pouvez utiliser à partir de Linux pour générer des binaires Windows. Vous pouvez l'installer avec synaptic, ou en exécutant:

sudo apt-get install gcc-mingw32

Sur cette base, et en utilisant la commande habituelle «make», vous pouvez créer des programmes pour Windows.

Ensuite, tout IDE qui vous permet d'utiliser make et gcc peut utiliser ce compilateur. Par exemple, voici comment procéder à partir de l'IDE Code :: Blocks .

Little Jawa
la source
assez bon pour moi +1
RobotHumans
7

Les autres réponses sont correctes pour le code C / C ++; vous aurez besoin d'un compilateur croisé.

Pour le code C #, vous pouvez simplement utiliser Monodevelop Installer Monodevelop , car le compilateur de Mono produit le même type de bytecode et de format exécutable que le compilateur .NET (et vice versa). Les applications que vous créez avec Mono s'exécuteront sans modification sur les machines Windows tant que vous restez dans les bibliothèques de classes de base .NET standard ou regroupez toute bibliothèque supplémentaire que vous utilisez avec votre application.

RAOF
la source
5

Pourrait vouloir essayer Qt avec Qt Creator. Grand cadre pour GUI et application console, vous pouvez compiler pour Windows, Linux et OS X.

http://qt.nokia.com/

SiliconChaos
la source
2

La façon la plus courante de programmer l'application Windows Linux (Ubuntu) est d'utiliser les outils Mingw:

http://www.mingw.org/

Il existe des packages ubuntu pour mingw prêts à être installés.

blague
la source
2

De cette page :

sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime

C'est tout ce qui est nécessaire pour une compilation croisée de base. Essayons:

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
  MessageBox(NULL,
    "Cette fenêtre prouve que le cross-compilateur est fonctionnel !",
    "Hello World", MB_OK);
  return 0;
}

Compilez ceci en utilisant:

i586-mingw32msvc-g++ -o essai.exe essai.cpp

Pour exécuter, vous avez besoin de la bibliothèque mingw: mingwm10.dll:

gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll

Ensuite, vous pouvez le lancer:

wine essai.exe

Le texte de la boîte de dialogue est en langue française avec un accent, pour le faire avec gvim, convertissez la source en page de code Windows 1252 :<ESC>:e ++enc=cp1252

Une autre solution, plus puissante, consiste à utiliser UTF-8 mais cela nécessite de changer la façon dont les chaînes sont gérées.

Aubin
la source