将vpp项目移植到buildroot打包系统时,发现了一个新的/异常/不规则的主机名:
checking host system type... x86_64-mu-linux-gnu
在buildroot中选择x86_64时,默认工具链
x86_64-linux
生成并符号链接到名为one
的buildroot私有工具链中x86_64-buildroot-linux-uclibc
这是交叉编译构建的完全正常做法。
x86_64-mu-linux-gnu也似乎不是编译器工具集的前缀,相反,configure正在寻找
x86_64-mu-linux-gcc, x86_64-mu-linux-gcc.br_real, x86_64-mu-linux-ar, etc
问题是:
修复这个“魔术”命名(特别是去除中心“-mu”后缀)到buildroot工具链中使用的常规命令的最佳做法是什么?
如果提出创建一组符号链接的替代方法,将非常感激。 (最好修复配置脚本系统内部)
答案 0 :(得分:0)
来自Makefile的完整原始广告块存在以下问题:
# OS to configure for. configure --host will be set to $(ARCH)-$(OS)
# Allow per-platform overrides
OS = $(strip $($(PLATFORM)_os))
ifeq ($(OS),)
OS = mu-linux
endif
问题的解决方案以及发现不规则后缀名称的原因:
示例:
PLATFORM=$(ARCH)
在编译 vpp 项目跨平台方式时,期望配置特殊变量来识别您要为目标平台编译的操作系统,并且此标识很棘手
变量的名称将是" _os "的强制名称的合成。后缀。变量的值必须是操作系统名称。
对于在 x86_64 上运行的Linux,您必须导出名为" x86_64_os "的变量价值" linux "分配
示例:
x86_64_os=linux
但最好以下列方式导出:
$(ARCH)_os=linux
生成的构建命令示例如下所示:
PLATFORM=$(ARCH) $(ARCH)_os=linux make bootstrap
如果您无法识别工具链的操作系统,项目编译环境会将 mu-linux 定义为主机操作系统,并且无法发现相应的工具链。