web-dev-qa-db-fra.com

Comment programmer pour Windows dans Ubuntu?

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

24
Behzadsh

Vous souhaitez effectuer une compilation croisée, qui permet de compiler du code pour des plates-formes autres que celle sur laquelle vous travaillez, en particulier lorsque le processeur est complètement différent. En gros, vous devez installer tous les en-têtes de votre cible (Windows), puis indiquer au compilateur qu'il s'agit d'une compilation croisée afin d'éviter certaines des vérifications du système et de pointer vers des répertoires non standard.

Selon la langue, il peut être utile de faire une recherche ou une question spécifique, ou si vous faites du 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 y a n bon guide pour la compilation croisée qt/win32 en utilisant des outils MinGW .

21

Vous devriez jeter un oeil sur MingW . Il fournit un compilateur compatible gcc pour Windows.

Il existe une version multiplateforme que vous pouvez utiliser sous Linux pour générer des fichiers 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 faire cela à partir de l'IDE Code :: Blocks .

12
Little Jawa

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 MonodevelopInstall Monodevelop , le compilateur de Mono produisant le même type de code octet et de format exécutable que le compilateur .NET (et vice versa). Les applications que vous créez avec Mono s'exécutent sans modification sur les machines Windows tant que vous restez dans les bibliothèques de classes .NET standard ou que vous regroupez toute bibliothèque supplémentaire que vous utilisez avec votre application.

7
RAOF

Peut-être voudriez-vous essayer Qt with Qt Creator? Cadre idéal pour les applications GUI et console, vous pouvez compiler pour Windows, Linux et OS X.

http://qt.nokia.com/

5
SiliconChaos

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 le code 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 modifier le traitement des chaînes.

2
Aubin

Le moyen le plus courant de programmer l'application Windows pour Linux (Ubuntu) consiste à utiliser les outils mingw:

http://www.mingw.org/

Il existe des paquets Ubuntu pour Mingw prêts à être installés.

2
joke