是否有从Linux到Windows交叉编译C++应用程序的手册?
仅此而已。我想要一些信息(链接、参考资料、示例…)来指导我这样做。
我甚至不知道这是否可能。
我的目标是在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
或您的Linux发行版使用的任何内容替换apt-get
。这将生成一个适用于Windows的hello.exe
。
一旦你明白了这一点,你就可以使用自动工具,并设置CC=i586-mingw32msvc-cc
CC=i586-mingw32msvc-cc ./configure && make
或者使用CMake和工具链文件来管理构建。更困难的是添加本机交叉库。通常它们存储在/usr/cross/i586-mingw32msvc/{include,lib}
中,您需要在构建过程的配置步骤中单独添加这些路径。
这取决于你的意思(我真的说不出来)。
-
如果你的意思是你想在Windows上使用现有的Linux应用程序,那么你可以尝试在Windows上用Cygwin编译它。然而,这并不能让你的Windows可执行文件摆脱对Cygwin的所有依赖(你的可执行文件仍然依赖于
cygwin.dll
文件),而且它可能还需要一些移植才能工作。看见http://www.cygwin.com. -
如果你的意思是,你希望能够在Linux上执行Windows应用程序的实际编译,并生成一个在Windows上可执行的.exe文件,从而使用你的Linux盒子进行开发和/或编译,那么你应该研究MinGW for Linux,这是一个用于在Linux上交叉编译Windows的工具。看见http://www.mingw.org/wiki/LinuxCrossMinGW.
致以最良好的问候!
我建议您尝试一下下面的GUB(Grand Unified Builder),因为它交叉编译了几个具有依赖关系的包,并将它们组装成一个适用于当前11种体系结构的单个安装包。您可以从这里下载一个预构建的iso以安装在VM中,并按照这里的源代码进行操作。它目前可以用于交叉编译GNU LilyPond/GGNU Denemo/Inkscape和OpenOffice.org。
目标架构为:
- darwin ppc-适用于darwin 7(MacOS 10.3)/PPowerPC的tar.bz2文件
- darwin-x86-darwin 8(MacOS 10.4)/x86的tar.bz2文件
- mingw-适用于Windows32的mingw可执行文件
- linux-x86-适用于linux/x86的shar归档
- linux-64-适用于linux/x86_64的shar归档
- linux ppc-适用于linux/PPowerPC的shar存档
- freebsd-x86-适用于FreeBSD4/x86的shar归档
- freebsd-64-适用于freebsd 6/x86_64的shar存档
- cygwin/Windows32的cygwin-.tar.bz2软件包
- 适用于Linux/arm的arm-shar存档(大部分未经测试)
- debian-shar debian档案(大部分未经测试)