【问题标题】:How to build c++ code into a .dmg file rather than a .exe file on visual studio 2019 from a windows computer?如何在 Windows 计算机上将 c++ 代码构建为 .dmg 文件而不是 Visual Studio 2019 上的 .exe 文件?
【发布时间】:2021-02-15 10:00:47
【问题描述】:

我如何将我的 c++ 代码构建到一个 dmg 文件中,而不是它始终构建到的 exe 文件中。我正在尝试使我的程序可供 mac 用户使用,但我找不到此问题的答案

【问题讨论】:

  • 您需要的远不止一个 DMG 文件编写器(一个 macOS 磁盘映像,供求知者使用)。你需要一个交叉编译器来生成 mach-o。这远远超出了本网站的范围,但可能为您的 GoogleFu 提供了一些有趣的搜索词。
  • 我认为最接近的方法是使用在 docker 容器中运行的 osxcross 之类的东西,并使用 Visual Studios linux 远程开发来连接到该容器。
  • 显而易见的问题: 为什么这需要通过 Visual Studio 2019 来完成?如果您的代码是可移植的,那么编译器应该无关紧要——在这种情况下,只需在 Mac 上编译它并生成正确的图像。您可以为此使用 cmake 之类的东西。即使您没有 mac,您也可以使用 macos 运行器从 Github Action 工作流程之类的生成工件输出。如果您的代码不是可移植的,那么您很可能不走运(例如,Windows 标头在 Mac 上不起作用)
  • 是的,你说得对,我可以这样做,但我只是想知道 vs,因为它是我使用的,我想我要求的是更易于访问的东西。跨度>

标签: c++ build visual-studio-2019 exe dmg


【解决方案1】:

首先,Mac 上的 .dmg 不是可执行文件。它实际上是一个包含可执行文件的打包工具。如果你有一个 GUI,那么你真正需要的是一个 .app。如果它只是一个命令行工具,那么它就是一个二进制文件,就像在 Unix 上一样。请记住,OSX 非常类似于 UNIX。

我为“Mac 的 windows 上的交叉编译”做了一个谷歌。谷歌给了我一堆相反的链接,但如果你涉水过它,你可能会发现一些有用的东西。根据您正在构建的内容,这很有趣:

https://metricpanda.com/rival-fortress-update-11-cross-compiling-for-three-platforms/

但是,如果您尝试编写 GUI,则几乎可以肯定需要链接到特定于 Mac 的库,而您没有它们。

如果您切换到 Qt 作为您的构建环境,您可能能够进行交叉编译。我没试过。

不过,如果我要这样做,我会在 Mac 上构建。无论如何,您必须进行测试,对吗?

【讨论】:

    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多