yocto中编译imx-test
背景
前段时间使用vpu,在利用官方给的测试程序,配置好yocto环境后,大部分的测试程序可以顺利编译出来,会有mxc_xxx_test.out的二进制文件出现,但是想要的mxc_vpu取并没有编译出来,经过多番追踪与修改后,顺利编译出来,现将整个过程记录下来。
查找
在yocto的生成文件路径找到log日志文件build/xxxxx/tmp/work/xxxxx/imx-test/1_3.10.17-1.0.0-r0/temp/log.do_compile
中查找到vpu相关的关键词,发现有Error出现
cannot find -lvpu
cannot find -lipu
没有找到对应的vpu和ipu库。两个可能:
- 这两个库没有编译
- 编译生成了需要的库,但是在编译mxc_vpu_test的时候对应的路径给的不对
第一条,在编译生成的文件中寻找libvpu.so
和 libipu.so
,发现其实都有生成,那么情况就是第二条了
继续查看log,发现所给的编译文件中打印的编译日志命令确实不包含yocto中生成库的路径,默认的是/usr/lib
和 /lib
等。
问题找到了,接下来就是解决问题了
解决
关于解决该问题其实尝试过很多方式,其中一个就是更改源码,将路径直接指定完全(通过添加-L -l
等参数的手段),能解决上面出现的问题,但是会出现其他包找不到的问题。
还有一些其他的尝试就不说了,把最终更改好的思路放在这里
- 通过查看imx-test的源码中的Makefile<