我想使用Linux x86_64主机交叉编译Qt库(最终我的应用程序)为Windows x86_64目标。我觉得我很近,但我可能对这个过程的某些部分有一个根本的误解。
我开始在我的Fedora机器上安装所有的mingw软件包,然后修改win32-g qmake.conf文件以适应我的环境。但是,我似乎遇到了一些看起来明显的配置选项Qt:-platform和-xplatform。 Qt文档说,-platform应该是主机体系结构(您正在编译),而-xplatform应该是您希望部署的目标平台。在我的例子中,我设置了-platform linux-g -64和-xplatform linux-win32-g其中linux-win32-g是我修改的win32-g配置。
我的问题是,在执行configure与这些选项后,我看到它调用我的系统的编译器,而不是交叉编译器(x86_64-w64-mingw32-gcc)。如果我省略-xplatform选项并将-platform设置为我的目标规范(linux-win32-g),它调用交叉编译器,但是当它发现一些Unix相关的函数没有定义时的错误。
问题:
>当从Linux主机交叉编译类似Qt for Windows的东西时,是否应该调用本机编译器?也就是说,在交叉编译过程中,我们不应该只使用交叉编译器?我不明白为什么Qt的配置脚本试图调用我的系统的本机编译器,当我指定-xplatform选项。
>如果我使用mingw交叉编译器,我什么时候必须处理specs文件? GCC的规范文件对我来说仍然是一个谜,所以我想知道这里的一些背景是否会帮助我。
>一般来说,除了在我的qmake.conf中指定交叉编译器,还需要考虑什么?