该脚本./configure
接受3个选项--build
,--host
和--target
。我混淆了他们的角色。它们的区别和语义是什么?
如本博文所述,在GCC配置条款中已提及,--target
仅在编译工具链时适用。在对库或二进制文件进行常规交叉编译时,请使用
--build=the architecture of the build machine
--host=the architecture that you want the file to run on
然而,当你正在构建工具链,事情变得更加复杂。我认为以下是正确的(尽管我不能说我曾经手动编译过交叉调试器):
假设您有:
您将配置并构建调试服务器(例如gdbserver)以在嵌入式设备上运行
./configure --build=powerpc --host=mips
这样您就可以将腻子安装到嵌入式设备上并运行“ gdbserver:1234 a.out”以开始调试并侦听端口1234。
然后,您将使用以下命令构建调试客户端(该客户端连接并控制gdbserver)
./configure --build=powerpc --host=i686 --target=mips
您可以将其复制到x86笔记本电脑,以便在该字段中可以运行“ gdbclient Embedded.device:1234”以调试a.out程序。
这也适用于编译器,您可能要查看上面的GCC链接或有关加拿大交叉编译的本节。
还要注意,实际上,您可能看不到指定的build,host或target,因为根据此Autoconf手册页,“目标默认为host,要编译的主机,以及根据config.guess生成的结果。”
总之,建立在代码--build
上运行它--host
与--target
建筑环境。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句