Как программировать для Windows в Ubuntu?


24

Есть ли в любом случае для создания (C ++ или C #) Windows консольные приложения в IDE Ubuntu (например, Anjuta) и скомпилировать его для Windows?


1
Mingw - очевидный выбор для кросс-компиляции, но я понятия не имею, как интегрировать его с Anjunta. Я видел учебник по интеграции mingw и kdevelop здесь: forums.gentoo.org/viewtopic-t-292180.html Может быть, кто-то из людей, рекомендующих mingw, знает об интеграции с учебником Anjunta?
RobotHumans

Ответы:


21

Вы хотите сделать кросс-компиляцию, которая является способом компиляции кода для платформ, отличных от той, на которой вы работаете, особенно когда процессор совершенно другой. По сути, вам нужно установить все заголовки для вашей цели (то есть Windows), а затем сообщить компилятору, что он выполняет кросс-компиляцию, чтобы он не выполнял некоторые системные проверки и вместо этого указывал на нестандартные каталоги.

В зависимости от языка вам может быть полезно выполнить поиск или задать вопрос конкретно, или, если вы делаете базовый c, вы можете использовать инструменты MinGW и те же инструменты компиляции на основе Linux, которые используют gcc:

sudo apt-get install gcc-mingw32

Существует хорошее руководство по кросс-компиляции qt / win32 с использованием инструментов MinGW .


12

Вы должны взглянуть на MingW . Он предоставляет gcc-совместимый компилятор для Windows.

Существует кросс-платформенная версия, которую вы можете использовать из Linux для генерации двоичных файлов Windows. Вы можете установить его с помощью synaptic или запустив:

sudo apt-get install gcc-mingw32

Исходя из этого и используя обычную команду make, вы можете создавать программы для окон.

Тогда любой IDE, который позволяет вам использовать make и gcc, может использовать этот компилятор. Например, вот как это сделать из IDE Code :: Blocks .


мне хватит +1
RobotHumans

7

Другие ответы верны для кода C / C ++; вам нужно получить кросс-компилятор.

Для кода C # вы можете просто использовать Monodevelop Установить Monodevelop , так как компилятор Mono создает тот же тип байт-кода и исполняемый формат, что и компилятор .NET (и наоборот). Приложения, которые вы создаете с помощью Mono, будут работать без изменений на компьютерах с Windows, пока вы находитесь в пределах стандартных библиотек базового класса .NET или объедините любую дополнительную библиотеку, которую вы используете с вашим приложением.


5

Возможно, стоит попробовать Qt с Qt Creator. Отличный фреймворк для GUI и консольного приложения вы можете скомпилировать для Windows, Linux и OS X.

http://qt.nokia.com/


2

Наиболее распространенный способ программирования приложений под Linux (ubuntu) - использование инструментов mingw:

http://www.mingw.org/

Для mingw есть готовые к установке пакеты ubuntu.


2

С этой страницы :

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

Это все, что нужно для базовой кросс-компиляции. Давай попробуем:

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

Скомпилируйте это, используя:

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

Для выполнения вам нужна библиотека mingw: mingwm10.dll:

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

Затем вы можете запустить его:

wine essai.exe

Текст диалогового окна на французском языке с ударением, чтобы сделать это с помощью gvim, преобразуйте исходный код в кодовую страницу Windows 1252 :<ESC>:e ++enc=cp1252

Другое, более мощное решение - использовать UTF-8, но для этого необходимо изменить способ обработки строк.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.