gpt4 book ai didi

c++ - 关于交叉编译的查询,从 Windows 到 Linux,从 Linux 到 Windows,

转载 作者:可可西里 更新时间:2023-11-01 10:07:32 25 4
gpt4 key购买 nike

我正在开发一个使用 ffmpeg 库的 C 项目。目前我在 windows 平台上工作,我将为 Linux ARM 交叉编译该项目。有了这样的背景,我几乎没有什么基本问题。

  1. 如果我使用 ANSI C++,我可以肯定,我将能够使用相应的编译器交叉编译项目 [MSVC, MingW]

    但是..

  2. 如果我在项目中使用“Win32”和其他“Windows”特定 API,交叉编译器将如何处理它,以使项目能够在 Linux 上运行。

    <
  3. 同样,如果我在项目中使用 Linux 特定的“功能”,交叉编译器将如何处理它,以使项目能够在 Windows 上运行。

最佳答案

当您交叉编译时,被交叉编译的代码必须使用目标平台上可用的 API(即它最终将运行的平台)。当交叉编译器的输出在 Linux 机器上运行时,它不会神奇地提供对 Win32 API 的访问;它与在目标机器 上编译代码相同,但意味着您实际上不需要这样做。换句话说,您可以通过在 ARM Linux 机器上运行 native (非交叉)编译器来实现相同的目的,但是您需要一个足够强大的 ARM 机器来运行编译器。

也就是说,原则上,您可以在使用 winelib 的同时交叉编译到 Linux。提供 win32 API。虽然不确定它在 ARM 上的运行情况如何 - 它实际上只适用于 x86。

最后,请注意,即使在最好的情况下,交叉编译也往往相当复杂。从 x86 Linux 交叉编译到 ARM Linux 而不是 x86 Windows 到 ARM Linux 可能会让您的生活更简单——虽然可以进行跨操作系统和跨平台构建,但您更改的变量越少,事情就越简单。

关于c++ - 关于交叉编译的查询,从 Windows 到 Linux,从 Linux 到 Windows,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13190444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com