我正在尝试将我的食谱编译并链接到arm库。我正在使用cmake。在阅读了yocto网站上的多个文档和参考资料之后,我似乎无法弄清楚正确的工作流程。我现在的方法是:
我从Yocto网站下载了arm工具链,并在我的sources / poky中准备好了。在这里,我可以看到systroots和我需要的所有库。我的食谱bb文件如下:
# This file was derived from the 'Hello World!' example recipe in the
# Yocto Project Development Manual.
#
SUMMARY = "Project"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://."
S = "${WORKDIR}/project/src"
inherit pkgconfig cmake externalsrc
我的CMake文件包含更多:
link_directories(/media/traffic/Yocto/QorIQ-SDK-V2.0-20160527-yocto/sources/poky/sysroots/aarch64-poky-linux/usr/lib)
我能够很好地编译一个hello world项目,但只要外部库发挥作用,它就会出错。
cannot find /usr/lib/libpthread_nonshared.a
/media/traffic/Yocto/QorIQ-SDK-V2.0-20160527-yocto/build_ls2084abluebox/tmp/sysroots/x86_64-linux/usr/bin/aarch64-fsl-linux/../../libexec/aarch64-fsl-linux/gcc/aarch64-fsl-linux/4.9.3/ld: cannot find /usr/lib/libpthread_nonshared.a
好像看错了文件夹。我正在采取的步骤是正确的吗?或者我错过了什么?
艾玛
答案 0 :(得分:1)
您使用的是哪个版权?最近我用另一个包得到了完全相同的问题。这里有两个问题:
找不到pThread库。我在树中添加了FindThreads.cmake
并导入了它。但是后来链接器无法成功。我得出结论,cmake本身对这个库有一个问题并且结束了改变poky提交以拥有不同版本的CMake。请注意,您还可以保留新的版本,并在图层中使用自定义CMake。
CMake 3.7和3.8.2无法正常工作,但3.7.1适合我(哈希c9a512b6408d4cc11c1b36f7bc1b9b1c31056ce1
)。要找出哪个提交,您可以执行
git log --pretty=oneline | grep cmake: