将C ++应用程序从Linux交叉编译为Windows的手册?

是否有一个交叉编译C ++应用程序从Linux到Windows的手册?

只是。 我想要一些信息(链接,参考,例子…)来指导我这样做。

我甚至不知道是否有可能。

我的目标是在Linux中编译一个程序,并获得一个可以在Windows下运行的.exe文件。

基础不是太难:

sudo apt-get install mingw32 cat > main.c <<EOF int main() { printf("Hello, World!"); } EOF i586-mingw32msvc-cc main.c -o hello.exe 

yumreplaceapt-get ,或者你的Linux发行版使用什么。 这将为Windows生成一个hello.exe

一旦你了解了这一点,你可以使用自动工具 ,并设置CC=i586-mingw32msvc-cc

 CC=i586-mingw32msvc-cc ./configure && make 

或者使用CMake和工具链文件来pipe理构build。 更难的是添加本地交叉库。 通常它们存储在/usr/cross/i586-mingw32msvc/{include,lib} ,您需要在构build过程的configuration步骤中分别添加这些path。

我build议你给GUB (Grand Unified Builder)一个尝试,因为它交叉编译了几个与它们的依赖关系的包,并将它们组装到当前11个体系结构的单个安装包中。 您可以从这里下载一个预先安装的ISO安装在一个虚拟机中,并在这里按照源代码。 目前它可以用来交叉编译GNU LilyPond / GNU Denemo / Inkscape和OpenOffice.org。

目标体系结构是:

  • 达尔文7(MacOS 10.3)/ PowerPC的darwin-ppc-tar.bz2文件
  • darwin-x86 – tar.bz2文件,用于Darwin 8(MacOS 10.4)/ x86
  • mingw – mingw可执行的Windows32
  • linux-x86 – 适用于Linux / x86的shar归档文件
  • linux-64 – 适用于Linux / x86_64的shar归档文件
  • linux-ppc – shar归档文件,用于Linux / PowerPC
  • FreeBSD 4 / x86下的freebsd-x86-shar归档文件
  • FreeBSD 6 / x86_64的freebsd-64-shar压缩文件
  • 用于Cygwin / Windows32的cygwin – .tar.bz2软件包
  • ARM / ARM的shar档案(很大程度上未经testing)
  • Debian的debian – shar档案(大部分未经testing)

这取决于你的意思(我真的不能说)。

  1. 如果你的意思是你想在Windows上使用现有的Linux应用程序,那么你可以尝试在Windows上使用Cygwin编译它。 但是,这并不会给你一个没有任何依赖Cygwin的依赖的Windows可执行文件(你的可执行文件仍然依赖于cygwin.dll文件),而且在它工作之前,它仍然可能需要一些移植工作。 见http://www.cygwin.com

  2. 如果你的意思是你希望能够在Linux上执行一个Windows应用程序的实际编译,并生成一个在Windows上可执行的.exe文件 – 因此使用你的Linux机器进行开发和/或编译,那么你应该查看MinGW Linux是Linux上用于交叉编译Windows的工具。 见http://www.mingw.org/wiki/LinuxCrossMinGW

最好的祝福!