【问题标题】:Build library in target for cross compile in Host在目标中构建库以在主机中进行交叉编译
【发布时间】:2019-02-25 16:30:11
【问题描述】:

通常交叉编译一个包(库)意味着使用目标机器的主机工具链在主机中构建包。

不过,似乎还有另一种选择

在target中构建包(使用原生gcc),然后将/usr/lib中的.so和/usr/include文件中的相关头文件复制到Host sysroot中,这样我们就可以在host中交叉编译(而不是在主机中进行包的交叉编译并复制到目标)。

我考虑将此方法用于 qt5 和 gstreamer 等大型软件包。

这种方法是否应该一直有效,即使是像 qt 这样的大包?

【问题讨论】:

    标签: linux qt


    【解决方案1】:

    你的目标有多快?你有多少 RAM 和磁盘空间?

    如果您的目标是配备四核 i7、16G RAM 和 500G SSD 的全嵌入式 PC,那么您应该没有问题(我曾使用这些“嵌入式”PC 进行图像处理)。

    如果它是具有 2 个内核、4G RAM 和 32G SD 卡的低端 ARM 处理器,那么即使有可能,您也不会乐于尝试在其上构建 Qt。

    【讨论】:

    • 目标资源不足。这就是为什么我首先需要交叉编译和调试。但我的问题与此无关。我实际上是在询问在目标中构建它然后复制到主机的方法是否应该始终有效。
    • 在目标上构建和复制到主机的效果实际上取决于您的工具设置的好坏。对于我完成的所有项目,它都运行良好,因为我们花时间确保我们需要的所有东西都已经在目标上或复制了。
    • 哦,是的,另一个想法是从主机远程挂载目标文件系统。然后您不必处理复制步骤。它已经在目标上可用。 (我也做过。)
    • 谢谢,我想你可以把它放在一个单独的答案中,但这就是我正在寻找的答案:) 谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 2013-12-07
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2013-10-16
    • 2018-09-04
    相关资源
    最近更新 更多