将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
用yum
replaceapt-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)
这取决于你的意思(我真的不能说)。
-
如果你的意思是你想在Windows上使用现有的Linux应用程序,那么你可以尝试在Windows上使用Cygwin编译它。 但是,这并不会给你一个没有任何依赖Cygwin的依赖的Windows可执行文件(你的可执行文件仍然依赖于
cygwin.dll
文件),而且在它工作之前,它仍然可能需要一些移植工作。 见http://www.cygwin.com 。 -
如果你的意思是你希望能够在Linux上执行一个Windows应用程序的实际编译,并生成一个在Windows上可执行的.exe文件 – 因此使用你的Linux机器进行开发和/或编译,那么你应该查看MinGW Linux是Linux上用于交叉编译Windows的工具。 见http://www.mingw.org/wiki/LinuxCrossMinGW 。
最好的祝福!