是否有从Linux到Windows交叉编译C ++应用程序的手册?
就是这样。我想要一些信息(链接,参考,例子......)来指导我这样做。
我甚至不知道是否可能。
我的目标是在Linux中编译程序并获取一个我可以在Windows下运行的.exe文件。
答案 0 :(得分:53)
基础知识并不太难:
sudo apt-get install mingw32
cat > main.c <<EOF
int main()
{
printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe
将apt-get
替换为yum
或Linux发行版使用的任何内容。这将为Windows生成hello.exe
。
一旦了解了这一点,就可以使用autotools,然后设置CC=i586-mingw32msvc-cc
CC=i586-mingw32msvc-cc ./configure && make
或使用CMake and a toolchain file来管理构建。更难的是添加本机交叉库。通常它们存储在/usr/cross/i586-mingw32msvc/{include,lib}
中,您需要在构建过程的配置步骤中单独添加这些路径。
答案 1 :(得分:6)
这取决于你的意思(我真的不能说)。
如果您的意思是要在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。
祝你好运!
答案 2 :(得分:4)
我建议您尝试下面的GUB(Grand Unified Builder),因为它会将几个包与其依赖项交叉编译,然后将它们组装到一个安装包中,用于当前的11个体系结构。您可以从here下载预安装的iso以便在VM中安装,并按照源here进行操作。它目前可用于交叉编译GNU LilyPond / GNU Denemo / Inkscape和OpenOffice.org。
目标架构是: