Czy mimo wszystko można tworzyć (C ++ lub C #) aplikacje konsoli Windows w środowisku IDE Ubuntu (np. Anjuta) i kompilować je dla systemu Windows?
Czy mimo wszystko można tworzyć (C ++ lub C #) aplikacje konsoli Windows w środowisku IDE Ubuntu (np. Anjuta) i kompilować je dla systemu Windows?
Odpowiedzi:
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 .
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 .
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 , 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ą.
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.
Najczęstszym sposobem programowania linuksowego systemu Windows (ubuntu) jest użycie narzędzi mingw:
Istnieją pakiety ubuntu dla mingw gotowe do instalacji.
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.