操作系统:CentOS7.4 minimal
SDK版本:Hi3559V100R003C02SPC009
建立开发环境步骤在此不表,文档《Hi3559V100/Hi3556V100 SDK安装使用说明.pdf》已经介绍很详细了,只是它针对的平台是ubuntu14.04 64bit server,不过我要把它安装到centos系统上,并且是最小系统,很多软件包都没有,当然基本的C/C++开发工具(gcc/g++/make/autoconf/gdb)还是有的。既然在最小系统上编译这么庞大的软件代码难免会遇到各种各样问题,这种心理准备我是有的,本着兵来将挡水来土掩的心态处之即可。这两天实际操作过程中果不其然遇到了动态库找不到情况,还好通过yum解决了,具体问题不表,现将解决方法介绍如下:
1、下载安装bc、ncurse开发包、glibc-static包:
yum install bc ncurses-devel glibc-static -y
2、替换默认的3.82版本make为3.81,由于yum无法降级make,只能下载源码编译然后替换/usr/bin/make。
这里要特别说明一下第二步操作原因,如果不做这个降级处理,在执行osdrv/tools/pc/mkimage_tool/fastboot下Makefile时报错:Makefile:517: *** mixed implicit and normal rules. Stop.具体代码片段:
platform.mk \
%: %_config
$(MAKE)
根据以往经验,这一定时make工具版本太新或太旧造成的,具体是哪个最近版本才支持就只能通过二分判断法来找寻答案了,结果升级到最新的4.2不行,试着降级到3.80也不行,最后降级到3.81才解析通过,看来海思编写编译脚本的高手对3.81版make规则运用很娴熟,问题是为什么这个规则的出现前无古人后无来者呢?