是否有将 C++ 应用程序从 Linux 交叉编译到 Windows 的手册?
只是。我想要一些信息(链接、参考、示例...)来指导我这样做。
我什至不知道这是否可能。
我的目标是在 Linux 中编译一个程序并获得一个可以在 Windows 下运行的 .exe 文件。
是否有将 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
替换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}
其中,您需要在构建过程的配置步骤中单独添加这些路径。
这取决于你的意思(我真的不能说)。
如果您的意思是要在 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。
最好的祝福!
我建议您尝试一下GUB(Grand Unified Builder),因为它交叉编译了几个包及其依赖项,并将它们组装成一个适用于当前 11 种架构的安装包。您可以从此处下载预构建的 iso 以安装在 VM 中,并在此处关注源代码。它目前可用于交叉编译 GNU LilyPond/GNU Denemo/Inkscape 和 OpenOffice.org。
目标架构是: