Answers:
您想进行交叉编译,这是一种针对您所用平台以外的平台编译代码的方法,尤其是在处理器完全不同的情况下。基本上,您需要为目标(即Windows)安装所有标头,然后告诉编译器它是交叉编译的,因此它不会进行某些系统检查,而是指向非标准目录。
根据语言的不同,您可能会发现对进行特定的搜索或问题很有用,或者,如果您使用的是基本c语言,则可以使用MinGW工具和使用gcc的基于linux的相同编译工具:
sudo apt-get install gcc-mingw32
您应该看看MingW。它为Windows提供了与gcc兼容的编译器。
您可以在Linux中使用跨平台版本来生成Windows二进制文件。您可以通过突触安装它,也可以运行:
sudo apt-get install gcc-mingw32
基于此,并使用通常的“ make”命令,您可以为Windows创建程序。
然后,任何允许您使用make和gcc的IDE都可以使用此编译器。例如,这是从Code :: Blocks IDE进行的操作。
对于C / C ++代码,其他答案是正确的。您将需要一个交叉编译器。
对于C#代码,您只能使用Monodevelop ,因为Mono的编译器会产生与.NET编译器相同类型的字节码和可执行格式(反之亦然)。只要您停留在标准.NET Base Class Libraries内或与应用程序一起使用的任何其他库都捆绑在一起,使用Mono构建的应用程序就可以在Windows机器上未经修改地运行。
可能希望尝试使用Qt Creator与Qt。GUI和Console应用程序的强大框架,可以针对Windows,Linux和OS X进行编译。
从此页面:
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,但这需要更改处理字符串的方式。