Jak programować w systemie Windows w systemie Ubuntu?

24

Czy mimo wszystko można tworzyć (C ++ lub C #) aplikacje konsoli Windows w środowisku IDE Ubuntu (np. Anjuta) i kompilować je dla systemu Windows?

Behzadsh
źródło
1
mingw jest oczywistym wyborem do kompilacji krzyżowej, ale nie mam pojęcia, jak zintegrować go z Anjunta. Widziałem tutorial na temat integracji mingw i kdevelop tutaj: forums.gentoo.org/viewtopic-t-292180.html może jeden z ludzi polecających mingw wie o integracji z tutorialem Anjunta?
RobotHumans

Odpowiedzi:

21

Chcesz wykonać kompilację krzyżową, która jest sposobem na kompilację kodu dla platform innych niż ta, na której jesteś, szczególnie gdy procesor jest zupełnie inny. Zasadniczo musisz zainstalować wszystkie nagłówki dla swojego obiektu docelowego (tj. Systemu Windows), a następnie poinformować kompilator, że jest kompilowany krzyżowo, aby nie przeprowadzał niektórych kontroli systemu, a zamiast tego wskazywałby niestandardowe katalogi.

W zależności od języka przydatne może być wyszukiwanie lub pytanie, a jeśli robisz podstawowe c, możesz użyć narzędzi MinGW i tego samego rodzaju narzędzi kompilacyjnych opartych na systemie Linux, które używają gcc:

sudo apt-get install gcc-mingw32

Jest dobry przewodnik dla kompilacji krzyżowej qt / win32 przy użyciu narzędzi MinGW .

Martin Owens -doctormo-
źródło
12

Powinieneś rzucić okiem na MingW . Zapewnia kompatybilny z gcc kompilator dla Windows.

Istnieje wersja wieloplatformowa, której można używać z systemu Linux do generowania plików binarnych systemu Windows. Możesz zainstalować go z synaptic lub uruchamiając:

sudo apt-get install gcc-mingw32

Na tej podstawie i przy użyciu zwykłego polecenia „make” możesz tworzyć programy dla systemu Windows.

Następnie dowolne IDE, które pozwala na użycie make i gcc, może korzystać z tego kompilatora. Na przykład, oto jak to zrobić z Code :: Blocks IDE .

Mała Jawa
źródło
wystarczająco dobre dla mnie +1
RobotHumans
7

Pozostałe odpowiedzi są poprawne dla kodu C / C ++; musisz uzyskać kompilator krzyżowy.

W przypadku kodu C # możesz po prostu użyć Monodevelop Zainstaluj Monodevelop , ponieważ kompilator Mono wytwarza ten sam typ kodu bajtowego i format wykonywalny jak kompilator .NET (i visa versa). Aplikacje budowane za pomocą Mono będą działały niezmodyfikowane na komputerach z systemem Windows, o ile pozostaniesz w standardowej bibliotece klas podstawowych .NET lub dołączasz dodatkową bibliotekę, której używasz z aplikacją.

RAOF
źródło
5

Może chcesz wypróbować Qt z Qt Creatorem. Świetne środowisko dla GUI i aplikacji konsolowej, którą możesz skompilować dla Windows, Linux i OS X.

http://qt.nokia.com/

SiliconChaos
źródło
2

Najczęstszym sposobem programowania linuksowego systemu Windows (ubuntu) jest użycie narzędzi mingw:

http://www.mingw.org/

Istnieją pakiety ubuntu dla mingw gotowe do instalacji.

żart
źródło
2

Z tej strony :

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

To wszystko, co jest potrzebne do podstawowej kompilacji krzyżowej. Spróbujmy:

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

Skompiluj to używając:

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

Aby wykonać, potrzebujesz biblioteki mingw: mingwm10.dll:

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

Następnie możesz go uruchomić:

wine essai.exe

Tekst okna dialogowego jest w języku francuskim z akcentem, aby to zrobić za pomocą gvim, przekonwertuj kod źródłowy na stronę kodową systemu Windows 1252 :<ESC>:e ++enc=cp1252

Innym rozwiązaniem, bardziej wydajnym, jest użycie UTF-8, ale wymaga to zmiany sposobu obsługi ciągów.

Aubin
źródło