Есть ли способ создания консольных приложений Windows (C ++ или C #) в IDE Ubuntu (например, Anjuta) и компилирование их для Windows?
Вы хотите сделать кросс-компиляцию, которая является способом компиляции кода для платформ, отличных от той, на которой вы работаете, особенно когда процессор совершенно другой. По сути, вам нужно установить все заголовки для вашей цели (то есть windows), а затем сообщить компилятору, что он выполняет кросс-компиляцию, чтобы он не выполнял некоторые системные проверки и вместо этого указывал на нестандартные каталоги.
В зависимости от языка вам может быть полезно выполнить конкретный поиск или вопрос, или, если вы делаете базовые c, вы можете использовать инструменты MinGW и те же инструменты компиляции на основе Linux, которые используют gcc:
sudo apt-get install gcc-mingw32
есть хорошее руководство по кросс-компиляции qt / win32 с использованием инструментов MinGW .
Возможно, стоит попробовать Qt с Qt Creator. Отличный фреймворк для GUI и консольного приложения, который вы можете скомпилировать для Windows, Linux и OS X.
Вы должны взглянуть на MingW . Он предоставляет gcc-совместимый компилятор для Windows.
Существует кроссплатформенная версия, которую вы можете использовать из Linux для генерации двоичных файлов Windows. Вы можете установить его с помощью synaptic или запустив:
sudo apt-get install gcc-mingw32
На основании этого и с помощью обычной команды make вы можете создавать программы для окон.
Тогда любой IDE, который позволяет вам использовать make и gcc, может использовать этот компилятор. Например, здесь, как это сделать из IDE Code :: Blocks .
Из этой страницы :
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, но для этого необходимо изменить способ обработки строк.
Остальные ответы верны для кода C / C ++; вам нужно получить кросс-компилятор.
Для кода C # вы можете просто использовать Monodevelop , так как компилятор Mono создает тот же тип байт-кода и исполняемый формат, что и компилятор .NET (и наоборот). Приложения, которые вы создаете с помощью Mono, будут работать без изменений на компьютерах с Windows, если вы остаетесь в стандартных библиотеках базовых классов .NET или связываете любую дополнительную библиотеку, которую вы используете с вашим приложением.
Наиболее распространенный способ программирования приложений для Linux - это использование инструментов mingw:
готовые к установке пакеты ubuntu для mingw.