Comstackr les applications de la console Windows C sous Linux

Puis-je comstackr une application console Windows C (.exe) sous Linux? (plus spécifique, Ubuntu)

Il y a longtemps que j’ai entendu parler de compilateurs croisés, mais je ne m’y intéressais pas à l’époque.

Meilleures salutations

Il y a ce post qui donne quelques infos, ainsi que cette question en double

Comme vous utilisez Ubuntu, les paquets dont vous avez besoin sont (je pense) mingw32

 apt-get install mingw32 

Ensuite, comstackz avec i586-mingw32msvc-gcc, par exemple

 i586-mingw32msvc-gcc helloworld.c -o helloworld.exe 

Vous pouvez si c’est le standard C, et n’utilisez pas les bibliothèques Windows.

Le code C lui-même est très portable et les bibliothèques C standard (libc) sont disponibles un peu partout. Si votre code utilise printf () et sscanf () et fopen (), il comstackra et exécutera simplement sur une autre plate-forme. Windows, Linux, BSD, etc.

Ce sont les bibliothèques autres que libc qui introduisent des problèmes de portabilité.

Tout ce qui est lié aux bibliothèques de plates-formes spécifiques à Windows pose problème. Kernel32.lib, user32.lib, etc. etc.

Il existe également des bibliothèques tierces qui, si elles sont écrites en C, devraient être disponibles sur Linux et Windows. PCRE est un bon exemple ici – il s’agit d’une bibliothèque d’expression régulière écrite en C, et elle est disponible sur Windows ainsi que sur Linux. il y a littéralement des centaines de bibliothèques dans cet ensemble.

Si vous vous contentez d’appels libc et de bibliothèque dans des bibliothèques portables, vous aurez alors une application C portable.

Si vous parlez d’une application ssortingctement ANSI C, vous ne devriez pas avoir de problème pour comstackr avec gcc sur une plate-forme Linux.

Si vous préférez les bibliothèques du système Windows, vous devrez remplacer ces appels par leurs équivalents système * nix (le cas échéant).

Si vous cherchez à comstackr un programme de Linux dans un exécutable Windows, oui, les compilateurs croisés seraient une option. http://www.airs.com/ian/configure/configure_5.html m’a aidé un peu.

Voulez-vous dire pouvez-vous construire un Windows .exe sur Linux (c’est-à-dire développer sur Linux et fournir l’application aux utilisateurs Windows?)

Ou voulez-vous dire prendre une application Windows et la recomstackr (port) sur Linux pour qu’elle soit construite et fonctionne sous Linux?

Vous pouvez utiliser WINE et installer VS par exemple. Une autre solution utilise MonoDevelop .
vous pouvez aussi utiliser des compilateurs croisés comme Code :: Blocks

La compilation croisée est possible. AFAIK vous obtenez un exécutable Windows, qui, bien sûr, s’exécutera sous Windows (et éventuellement WINE).

Il y a 2 choix possibles pour cela: mingw et cygwin.

Un tutoriel ici . La page de compilation croisée de MingW est ici .

Vous pouvez également utiliser la norme gcc dans le terminal de Linux, vous pouvez utiliser les mêmes programmes dont vous avez seulement besoin pour changer le std.h avec unistd.h (ce qui signifie que vous devrez changer pour des bibliothèques spécifiques à Linux). J’ai un cours sur la programmation Linux à l’école, sauf qu’il s’agit des modifications apscopes à Ubuntu et à la bibliothèque pour les entrées / sorties et de certains linux spécifiques aux threads, tout est pareil.

exemple: gcc -c myprogram.c // comstackr le nom de gcc -o myprogram.o pour créer lib myprogram // avec des arguments s’il y en a