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

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

24
задан 23 November 2010 в 00:21

6 ответов

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

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

sudo apt-get install gcc-mingw32

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

0
ответ дан 23 November 2010 в 00:21

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

http://qt.nokia.com/

0
ответ дан 23 November 2010 в 00:21

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

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

sudo apt-get install gcc-mingw32

На основании этого и с помощью обычной команды make вы можете создавать программы для окон.

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

0
ответ дан 23 November 2010 в 00:21

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

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, но для этого необходимо изменить способ обработки строк.

0
ответ дан 23 November 2010 в 00:21

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

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

0
ответ дан 23 November 2010 в 00:21

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

http://www.mingw.org/

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

0
ответ дан 23 November 2010 в 00:21

Другие вопросы по тегам:

Похожие вопросы: