主要观点:在使用 autotools 进行(交叉)编译代码时,经常看到滥用 --host、--build 和 --target 选项,人们常随意尝试不同值直到似乎得到想要的结果而不知实际在做什么,但这不能怪他们,因为这些参数不明显且如今很少人自己编译交叉编译器;交叉编译已不再复杂,很多编程语言无需特殊工具就能为不同架构生成代码,也有工具可轻松为任意架构构建根文件系统等,但有时仍需使用 SDK 并通过 autotools 进行交叉编译。
关键信息:
- --build 指定构建过程执行的系统,即编译发生的机器,用于定义构建环境,如架构、操作系统等,示例为 --build=x86_64-linux-gnu。
- --host 指定构建的软件将运行的系统,用于交叉编译时,构建系统和主机系统不同,应设置为最终运行可执行文件的目标环境,如 --host=arm-linux-gnueabi。
- --target 指定构建的软件所针对的系统,常用于构建交叉编译器或其他工具链,相对不常用,示例为 --target=arm-linux-gnueabi。
重要细节:
- gcc 文档可解释这些选项但仍可能不清晰。
- --target 通常在构建交叉编译器时使用。
- 给出了相关参考资料[https://gcc.gnu.org/onlinedoc...]。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。