【问题标题】:cross platform compilation and installers跨平台编译和安装程序
【发布时间】:2014-02-19 17:11:47
【问题描述】:

假设您刚刚编写了一个 Qt 应用程序。一次编写到处编译... 你有一台 Windows 7 x86 64 位机器。您希望:

  1. 静态编译这个可执行文件(以最小化 dll/so/frameworks 的数量)
  2. 为 (x86_64, x86) * (windows[all],linux,mac, 为什么不是 bsd) = 6/8 对 (cpu,os) 编译它
  3. 您还希望人们执行最简单的安装:

                --> one file for installer which copies an sqlite database in program    data and an executable in program files
                --> linux via yum/yast/apt-get installs
                --> i'm not sure what to do for mac
    
  4. 简单的卸载程序

您将如何在您的 Windows 机器上完成所有这些工作,尤其是为 mac 进行交叉编译?

Qt Installer Framework 似乎是完成这项工作的正确工具。但是我无论如何都看不到如何编译mac二进制文件......

你会用什么?你经常使用什么工具?

编辑 以下建议我正在寻找一个交叉编译器。我会尝试将它集成到 Qt 工具链中...clang 看起来很棒。

  1. http://blog.boceto.fr/2012/04/29/the-universal-compiler/
  2. http://blog.boceto.fr/2012/05/07/the-universal-compiler-part-3-clang-targetting-mingw/
  3. http://clang.llvm.org/docs/CrossCompilation.html

【问题讨论】:

  • @merlin09 我相信您的编辑中有错字。
  • 我认为您不能在 Mac 以外的任何其他平台上为 Mac 进行交叉编译。此外,一般来说,管理交叉编译器可能需要大量工作,并且存在一个缺点,即您根本无法运行测试或测试实际应用程序。我宁愿使用虚拟机。
  • 但是使用VM你需要有MAC os镜像,这不是免费的...
  • 是的,它不是免费的,而且你只能合法地在 MAC 上运行它,所以它可能不是 VM 映像 :)
  • 我认为虽然理论上你想要的是可行的,但实际上设置多个主机/虚拟机的工作量要少得多,而且得到更好的支持。这就是 Qt 自己的持续集成系统在多台机器上运行的原因。当您按照自己的意愿进行交叉编译时,您可能是这个星球上唯一这样做的人,并且您最终将不仅支持您自己的代码,还支持多个工具链。这是很多看似没有明显好处的工作。给自己买几个不同的(可能是虚拟的)主机,一个合适的 CI 系统,从那里开始就很容易了。

标签: c++ qt installation


【解决方案1】:

我认为最好的方法是获取cross-compiler,然后按照 Qt 安装程序框架中指示的步骤生成安装程序可执行文件,每个平台一次。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 2015-06-10
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多