交叉编译工具链版本:gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu 取自地平线。
目标平台:地平线J5
编译动态库:libnfnetlink-1.0.2
工具链挂载参数:
动态库编译配置参数:
Configure流程顺利通过,但是在make -j时遇到以下问题,给rel传的参数我也有截图,见附件:
然后调查过程中我发现aarch64-linux-gnu-gcc是个shell脚本:
$*本身是给前面的aarch64-linux-gnu-gcc-rel -mfix-cortex-a53-835769 传入参数
( $* 以一个单字符串向脚本传递参数,问题出现在这里,貌似是传的参数解析有误 )
我直接把CC设置成aarch64-linux-gnu-gcc-rel -mfix-cortex-a53-835769试了一下,编译通过。配置参数如下:
下面我有几个问题想咨询一下:
1. 是否有其他人同样遇到过这个问题?
2. 我们使用$*传参是否会造成一些场景下传入的编译参数被错误的解析?
3. 我们的aarch-linux-gnu-gcc是由于什么原因采用shell脚本映射aarch64-linux-gnu-gcc-rel -mfix-cortex-a53-835769,而不是像linaro等交叉编译平台使用处理好的二进制可执行程序?
4. 如果问题2的回答是肯定的,我们是否需要更新交叉编译工具链?或者有没有推荐的,可以平替的交叉工具链?
自行回答内容:
1. 暂时应该没有
2. 如果$*传入参数错误,需要更换成
3. 等待回复
4. 暂时不会更换,按2的回答修改aarch64-linux-gnu-gcc shell脚本调整。所以同样是Ubuntu 18.04 LTS,有时候机魂不悦还得调调。




