如何在Ubuntu中为Windows编程?


24

无论如何,是否要在Ubuntu的IDE(例如Anjuta)中创建(C ++或C#)Windows控制台应用程序并将其编译为Windows?


1
mingw是进行交叉编译的明显选择,但我不知道如何将其与Anjunta集成。我确实在这里看到了有关集成mingw和kdevelop的教程:forums.gentoo.org/viewtopic-t-292180.html 也许是推荐mingw的人之一知道与Anjunta教程的集成?
RobotHumans

Answers:


21

您想进行交叉编译,这是一种针对您所用平台以外的平台编译代码的方法,尤其是在处理器完全不同的情况下。基本上,您需要为目标(即Windows)安装所有标头,然后告诉编译器它是交叉编译的,因此它不会进行某些系统检查,而是指向非标准目录。

根据语言的不同,您可能会发现对进行特定的搜索或问题很有用,或者,如果您使用的是基本c语言,则可以使用MinGW工具和使用gcc的基于linux的相同编译工具:

sudo apt-get install gcc-mingw32

使用MinGW工具进行qt / win32交叉编译一个很好的指南


12

您应该看看MingW。它为Windows提供了与gcc兼容的编译器。

您可以在Linux中使用跨平台版本来生成Windows二进制文件。您可以通过突触安装它,也可以运行:

sudo apt-get install gcc-mingw32

基于此,并使用通常的“ make”命令,您可以为Windows创建程序。

然后,任何允许您使用make和gcc的IDE都可以使用此编译器。例如,这是从Code :: Blocks IDE进行的操作


对我来说足够好+1
RobotHumans 2010年

7

对于C / C ++代码,其他答案是正确的。您将需要一个交叉编译器。

对于C#代码,您只能使用Monodevelop 安装Monodevelop,因为Mono的编译器会产生与.NET编译器相同类型的字节码和可执行格式(反之亦然)。只要您停留在标准.NET Base Class Libraries内或与应用程序一起使用的任何其他库都捆绑在一起,使用Mono构建的应用程序就可以在Windows机器上未经修改地运行。



2

对Windows应用程序li​​nux(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,但这需要更改处理字符串的方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.