使用Qt Creator构建Yocto Qt应用时遇libpthread符号错误求助
解决Qmlcachegen符号查找错误的步骤
1. 正确加载Yocto SDK环境
每次启动Qt Creator前,必须在终端中执行Yocto SDK的环境初始化脚本,确保SDK的库和工具路径被正确设置:
source /opt/poky/3.1.28/environment-setup-x86_64-pokysdk-linux
执行完脚本后,从该终端启动Qt Creator:
qtcreator &
这样Qt Creator会继承SDK的环境变量,避免调用主机系统的不兼容库。
2. 检查Qt Creator Kit配置
打开Qt Creator,依次进入Tools > Options > Kits,找到你为Yocto配置的Kit,完成以下检查:
- Qmake路径:确认Qmake指向SDK内的版本,路径应为
/opt/poky/3.1.28/sysroots/x86_64-pokysdk-linux/usr/bin/qmake,而非主机系统自带的Qmake。 - 环境变量:切换到"Environment"标签,确保
LD_LIBRARY_PATH已设置为SDK库路径优先:
添加或修改变量:
同时移除任何指向主机系统Qt或GLIBC库的路径,避免冲突。LD_LIBRARY_PATH=/opt/poky/3.1.28/sysroots/x86_64-pokysdk-linux/usr/lib:$LD_LIBRARY_PATH
3. 验证SDK兼容性(可选)
如果上述步骤无效,可能是SDK构建时使用的GLIBC版本与主机系统不匹配:
- 检查主机系统的GLIBC版本:
ldd --version - 若主机GLIBC版本低于SDK依赖的版本,需重新构建Yocto SDK,在构建时通过Yocto的
GLIBC_VERSION变量指定与主机兼容的版本(具体参考Yocto Dunfell官方文档)。
内容的提问来源于stack exchange,提问作者aashish
相关产品推荐
相关产品推荐

