Come programmare per Windows in Ubuntu?


24

Esiste un modo per creare (C ++ o C #) applicazioni console Windows all'interno dell'IDE di Ubuntu (es. Anjuta) e compilarlo per Windows?


1
mingw è la scelta ovvia per la compilazione incrociata, ma non ho idea di come integrarlo con Anjunta. Ho visto un tutorial sull'integrazione di mingw e kdevelop qui: forum.gentoo.org/viewtopic-t-292180.html forse una delle persone che consigliano mingw conosce un'integrazione con il tutorial di Anjunta?
RobotHumans,

Risposte:


21

Si desidera eseguire la compilazione incrociata, che è un modo per compilare codice per piattaforme diverse da quella utilizzata, soprattutto quando il processore è completamente diverso. Fondamentalmente devi installare tutte le intestazioni per il tuo target (ad es. Windows) e poi dire al compilatore che è compilato in modo incrociato in modo che non effettuerà alcuni dei controlli di sistema e invece farà riferimento a directory non standard.

A seconda della lingua potresti trovare utile fare una ricerca o una domanda specifica, oppure se stai facendo una c di base puoi usare gli strumenti MinGW e lo stesso tipo di strumenti di compilazione basati su Linux che usano gcc:

sudo apt-get install gcc-mingw32

C'è una buona guida per la compilazione incrociata qt / win32 usando gli strumenti MinGW .


12

Dovresti dare un'occhiata a MingW . Fornisce un compilatore compatibile con gcc per Windows.

Esiste una versione multipiattaforma che è possibile utilizzare da Linux per generare file binari di Windows. Puoi installarlo con synaptic o eseguendo:

sudo apt-get install gcc-mingw32

Basandoti su questo, e usando il solito comando 'make', puoi creare programmi per Windows.

Quindi qualsiasi IDE che ti consente di usare make e gcc può usare questo compilatore. Ad esempio, ecco come farlo dall'IDE Code :: Blocks .


abbastanza buono per me +1
RobotHumans il

7

Le altre risposte sono corrette per il codice C / C ++; avrai bisogno di un cross-compilatore.

Per il codice C #, puoi semplicemente usare Monodevelop Installa Monodevelop , poiché il compilatore Mono produce lo stesso tipo di bytecode e formato eseguibile del compilatore .NET (e viceversa). Le app create con Mono verranno eseguite senza modifiche sui computer Windows purché rimangano all'interno delle librerie di classi .NET Base standard o raggruppino qualsiasi libreria aggiuntiva utilizzata con l'app.



2

Il modo più comune per programmare l'applicazione Windows Linux (Ubuntu) è usare gli strumenti mingw:

http://www.mingw.org/

Ci sono pacchetti Ubuntu per mingw pronti per l'installazione.


2

Da questa pagina :

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

Questo è tutto ciò che è necessario per la compilazione incrociata di base. Proviamo:

#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;
}

Compilare usando:

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

Per eseguire, è necessaria la libreria mingw: mingwm10.dll:

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

Quindi puoi avviarlo:

wine essai.exe

Il testo della finestra di dialogo è in lingua francese con un accento, per farlo con gvim, converti il codice sorgente in windows code 1252 :<ESC>:e ++enc=cp1252

Un'altra soluzione, più potente, è usare UTF-8 ma ciò richiede di cambiare il modo in cui vengono gestite le stringhe.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.