是否有从Linux到Windows交叉编译C++应用程序的手册?
只是.我想要一些信息(链接,参考,例子......)来指导我这样做.
我甚至不知道是否可能.
我的目标是在Linux中编译一个程序并获得一个我可以在Windows下运行的.exe文件.
基础知识并不太难:
sudo apt-get install mingw32 cat > main.c <替换
apt-get
为yum
或者Linux发行版使用的任何内容.这将为hello.exe
Windows 生成一个.一旦你了解了它,就可以使用autotools并设置
CC=i586-mingw32msvc-cc
CC=i586-mingw32msvc-cc ./configure && make或者使用CMake和工具链文件来管理构建.更难的是添加本机交叉库.通常它们存储在中
/usr/cross/i586-mingw32msvc/{include,lib}
,您需要在构建过程的配置步骤中单独添加这些路径.
`wine hello.exe`应该这样做!
对于像这样的愚蠢简单程序,WINE是可以的,但VM(VirtualBox,VMWare,QEMU等)是你最好的选择.
如果要生成64位Windows二进制文件,请安装64位工具:`$ sudo apt-get install mingw-w64`.编译器是`x86_64-w64-mingw32-gcc`.
需要注意的一件事是,某些库不喜欢交叉编译。如果唯一的选择是.exe安装程序和源,则可能要在wine下安装该库,然后将这些库和标头复制到mingw搜索路径中。我永远无法让Boost交叉编译
2> Anders Hanss..:这取决于你的意思(我真的不能说).
如果您的意思是要在Windows上使用现有的Linux应用程序,那么您可以尝试在Windows上使用Cygwin进行编译.但是,这并没有为您提供一个Windows可执行文件,不受所有依赖于Cygwin的依赖(您的可执行文件仍取决于
cygwin.dll
文件) - 并且它仍然可能需要一些移植才能工作.见http://www.cygwin.com.如果你的意思是你要能够执行Linux上的Windows应用程序的实际编译并生成.exe文件是可执行文件在Windows上-从而用于开发和/或编译你的Linux机器,那么你应该考虑的MinGW的Linux是Linux上用于交叉编译Windows的工具.见http://www.mingw.org/wiki/LinuxCrossMinGW.
最好的祝福!