是否有从 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

apt-get 替换为 yum ,或者Linux发行版使用的任何内容。这将为Windows生成 hello.exe

一旦了解了这一点,就可以使用 autotools ,并设置 CC = i586-mingw32msvc-cc

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

或使用 CMake和工具链文件来管理构建。更难的是添加本机交叉库。通常它们存储在 / usr / cross / i586-mingw32msvc / {include,lib} 中,您需要在构建过程的configure步骤中单独添加这些路径。

其他提示

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

  1. 如果您的意思是要在Windows上使用现有的Linux应用程序,那么您可以尝试使用 Cygwin 。但是,这并没有为您提供一个Windows可执行文件,不受所有依赖于Cygwin的依赖(您的可执行文件仍依赖于 cygwin.dll 文件) - 并且它仍然可能需要一些移植才能工作。请参见 http://www.cygwin.com

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

  3. 祝你好运!

我建议你给出以下内容, 古布 (Grand Unified Builder)是一种尝试,它交叉编译了多个包及其依赖项,并将它们组装成当前 11 种架构的单个安装包。您可以从以下位置下载预构建的 iso 以在 VM 中安装: 这里 并追踪来源 这里. 。它目前可用于交叉编译 GNU LilyPond/ GNU Denemo / Inkscape 和 OpenOffice.org。

目标架构是:

  • darwin-ppc - Darwin 7 (MacOS 10.3)/PowerPC 的 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/PowerPC 的 shar 存档
  • freebsd-x86 - FreeBSD 4/x86 的共享存档
  • freebsd-64 - FreeBSD 6/x86_64 的共享存档
  • cygwin - 用于 Cygwin/Windows32 的 .tar.bz2 软件包
  • arm - Linux/ARM 的 shar 存档(大部分未经测试)
  • debian - Debian 的 shar 存档(大部分未经测试)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top