通过调试启用“无法找到-lgcov”来交叉编译yocto的iotivity堆栈时出错

时间:2017-09-15 13:00:04

标签: iotivity

我在运行“scons后得到的这些日志TARGET_OS = yocto TARGET_ARCH = i586 TARGET_TRANSPORT = BLE TC_PREFIX = i586-poky-linux-TC_PATH = / opt / poky-edison / 1.6 / sysroots / x86_64-pokysdk- linux / usr / bin / i586-poky-linux RELEASE = 0“

scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: out/yocto/i586/debug
Linking out/yocto/i586/debug/service/resource-encapsulation/src/common/librcs_common.so
/opt/poky-edison/1.6/sysroots/x86_64-pokysdk-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.8.2/ld: cannot find -lgcov
collect2: error: ld returned 1 exit status
scons: *** [out/yocto/i586/debug/service/resource-encapsulation/src/common/librcs_common.so] Error 1
scons: building terminated because of errors.

- >这似乎是一个链接错误,所以我尝试安装gcovr和lcov。我仍然得到同样的错误,所以任何人都面临或解决了这个问题,请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

在调试模式(RELEASE = 0)中与gcov链接是新的,也许它在进入yocto构建的方式中存在错误。在交叉构建故事中存在漏洞,提交错误将有助于跟踪事物(https://jira.iotivity.org)。你安装的这两个pkgs对此没有影响,它们是工具,抱怨是缺少库 - 你是否在交叉构建环境(sysroot)中有libgcov?在我的系统上,我看到了两个地方:

/usr/lib/gcc/x86_64-redhat-linux/7/libgcov.a
/usr/lib/gcc/arm-none-eabi/7.1.0/libgcov.a  + target-specific variants

后者不用于iotivity,但是如果使用了交叉工具链则会显示安装。前者来自pkg gcc-7.1.1-3.fc26.x86_64,后者来自pkg arm-none-eabi-gcc-cs-7.1.0-2.fc26.x86_64。

答案 1 :(得分:0)

你是否沿着bitbake建造? 如果是,它应该适用于poky,除非你使用clang,其中需要一些与gcov相关的补丁。

https://gerrit.iotivity.org/gerrit/#/c/18437/

无论如何报告yocto标签的错误我将看看