Gibt es eine Möglichkeit, Windows-Konsolenanwendungen (C ++ oder C #) in Ubuntus IDE (z. B. Anjuta) zu erstellen und für Windows zu kompilieren?
Gibt es eine Möglichkeit, Windows-Konsolenanwendungen (C ++ oder C #) in Ubuntus IDE (z. B. Anjuta) zu erstellen und für Windows zu kompilieren?
Antworten:
Sie möchten Cross-Compiling durchführen. Dies ist eine Möglichkeit, Code für andere Plattformen als die von Ihnen verwendeten zu kompilieren, insbesondere wenn der Prozessor völlig anders ist. Grundsätzlich müssen Sie alle Header für Ihr Ziel (z. B. Windows) installieren und dann dem Compiler mitteilen, dass es sich um ein Cross-Compiler handelt, damit einige Systemprüfungen nicht durchgeführt werden und stattdessen auf nicht standardmäßige Verzeichnisse verwiesen wird.
Abhängig von der Sprache kann es nützlich sein, eine Suche oder eine bestimmte Frage durchzuführen, oder wenn Sie mit Basic C arbeiten, können Sie MinGW- Tools und die gleichen Linux-basierten Kompilierungs-Tools verwenden, die gcc verwenden:
sudo apt-get install gcc-mingw32
Es gibt eine gute Anleitung zum Kompilieren von qt / win32 mit MinGW-Tools .
Sie sollten sich MingW ansehen . Es bietet einen GCC-kompatiblen Compiler für Windows.
Es gibt eine plattformübergreifende Version, die Sie unter Linux verwenden können, um Windows-Binärdateien zu generieren. Sie können es mit synaptic installieren oder indem Sie Folgendes ausführen:
sudo apt-get install gcc-mingw32
Basierend darauf und mit dem üblichen Befehl 'make' können Sie Programme für Windows erstellen.
Dann kann jede IDE, die make und gcc erlaubt, diesen Compiler verwenden. Hier sehen Sie zum Beispiel, wie das in der Code :: Blocks-IDE gemacht wird .
Die anderen Antworten sind für C / C ++ - Code korrekt. Sie benötigen einen Cross-Compiler.
Für C # -Code können Sie einfach Monodevelop verwenden , da der Compiler von Mono denselben Typ von Bytecode und dasselbe ausführbare Format wie der .NET-Compiler erzeugt (und umgekehrt). Apps, die Sie mit Mono erstellen, können auf Windows-Computern unverändert ausgeführt werden, solange Sie in den standardmäßigen .NET-Basisklassenbibliotheken bleiben oder eine zusätzliche Bibliothek bündeln, die Sie mit Ihrer App verwenden.
Vielleicht möchten Sie Qt mit Qt Creator ausprobieren. Großartiges Framework für GUI- und Konsolenanwendungen, das Sie für Windows, Linux und OS X kompilieren können.
Die gebräuchlichste Art, Windows Application Linux (Ubuntu) zu programmieren, ist die Verwendung der mingw-Tools:
Es gibt Ubuntu-Pakete für mingw, die zur Installation bereit sind.
Von dieser Seite :
sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime
Dies ist alles, was für die grundlegende Cross-Kompilierung benötigt wird. Lass es uns versuchen:
#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;
}
Kompilieren Sie dies mit:
i586-mingw32msvc-g++ -o essai.exe essai.cpp
Zum Ausführen benötigen Sie die mingw-Bibliothek: mingwm10.dll:
gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll
Dann können Sie es starten:
wine essai.exe
Der Text des Dialogfelds ist in französischer Sprache und mit einem Akzent versehen. Um dies mit gvim zu tun, konvertieren Sie die Quelle in die Windows-Codepage 1252 :<ESC>:e ++enc=cp1252
Eine andere, leistungsstärkere Lösung ist die Verwendung von UTF-8, für die jedoch die Art und Weise geändert werden muss, in der Zeichenfolgen behandelt werden.