gpt4 book ai didi

cross-compiling - "./configure"选项 "--build"、 "--host"和 "--target"有什么区别?

转载 作者:行者123 更新时间:2023-12-03 04:39:53 26 4
gpt4 key购买 nike

脚本./configure接受3个选项--build--host--target 。我混淆了他们的角色。它们的区别和语义是什么?

最佳答案

this blog post 中所述并在 GCC Configure Terms 中提到, --target 仅在编译工具链时适用。当您对库或二进制文件进行正常的交叉编译时,您使用

--build=the architecture of the build machine
--host=the architecture that you want the file to run on

但是,当您构建工具链时,事情可能会变得更加复杂。我认为以下是正确的(尽管我不能说我曾经手动编译过交叉调试器):

假设您有:

  • 一台 powerpc 构建机器,您将在其上进行所有编译
  • 您的代码将在多个带有 mips 处理器的嵌入式设备上运行
  • 一台 x86 笔记本电脑,用于现场调试这些设备

您将配置和构建调试服务器(例如gdbserver)以在嵌入式设备上运行

./configure --build=powerpc --host=mips

这样您就可以在嵌入式设备上使用 putty 并运行“gdbserver :1234 a.out”来开始调试并监听端口 1234。

然后,您将使用

构建调试客户端(连接并控制 gdbserver)
./configure --build=powerpc --host=i686 --target=mips 

您可以将其复制到您的 x86 笔记本电脑上,以便您可以在现场运行“gdbclientEmbedded.device:1234”来调试您的 a.out 程序。

这也适用于编译器,您可能想查看上面的 GCC 链接或本节有关 Canadian cross 的内容。编译。

另请注意,实际上,您可能看不到指定的构建、主机或目标,因为根据 this Autoconf manual page ,“目标默认为主机,主机为构建,构建为 config.guess 的结果。”

总而言之,在--build上构建代码,在具有--target架构环境的--host上运行它。

关于cross-compiling - "./configure"选项 "--build"、 "--host"和 "--target"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139403/

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