是否可以使用 gcov 覆盖共享库的代码?

2023-12-19

我尝试测试使用 OpenCV 共享库的可执行文件。当使用 gcov 了解覆盖了哪些代码行时,我只能获取有关我的 .cpp 文件和库的 .hpp 的信息。没有显示有关库的 .cpp 文件的信息。

我用 -pg --coverage 标志编译并链接。


是的,gcov 可以提供有关共享库的覆盖率信息。如果我没记错的话,我在我的项目中遇到的问题,你可能没有包括--coverage动态库链接上的标志。这是我可以创建的最小示例。

生成文件:

CXXFLAGS += --coverage
LDFLAGS += --coverage

myexec: myexec.cpp libmylib.so

libmylib.so: mylib.o
    gcc --coverage -shared -Wl,-soname,libmylib.so -o libmylib.so mylib.o

mylib.o: CXXFLAGS += -fPIC

myexec.cpp:

#include "mylib.h"

int main(int argc, char** argv)
{
    return is_even(argc);
}

mylib.h

#ifndef MYLIB_H
#define MYLIB_H

int is_even(int num);

#endif

mylib.cpp

#include "mylib.h"

int is_even(int num)
{
    if (num % 2)
        return false;
    else
        return true;
}

make 的输出(这样你就可以准确地看到构建是什么):

g++ --coverage -fPIC   -c -o mylib.o mylib.cpp
gcc --coverage -shared -Wl,-soname,libmylib.so -o libmylib.so mylib.o
g++ --coverage  --coverage  myexec.cpp libmylib.so   -o myexec

我使用运行可执行文件LD_LIBRARY_PATH="." ./myexec a,然后跑gcov mylib.cpp。这是 mylib.cpp.gcov 的内容:

    -:    0:Source:mylib.cpp
    -:    0:Graph:mylib.gcno
    -:    0:Data:mylib.gcda
    -:    0:Runs:1
    -:    0:Programs:1
    -:    1:#include "mylib.h"
    -:    2:
    1:    3:int is_even(int num)
    -:    4:{
    1:    5:    if (num % 2)
#####:    6:        return false;
    -:    7:    else
    1:    8:        return true;
    -:    9:}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以使用 gcov 覆盖共享库的代码? 的相关文章

  • Opencv中内存Mat表示

    我知道在内存中opencv将Mat对象表示为一个大数组 因此 如果我有 3 个尺寸为 200x200 的通道垫 那么在内存中它将将该垫存储在尺寸为 3x200x200 的数组中 或者更一般地说 内存中的任何 Mat 都将存储为channel
  • OpenCV:处理每一帧

    我想使用 OpenCV 编写一个跨平台应用程序进行视频捕获 在所有示例中 我发现来自相机的帧是使用抓取功能进行处理并等待一段时间 我想处理序列中的每一帧 我想定义自己的回调函数 每次当一个新帧准备好处理时都会执行该函数 例如直播对于 Win
  • 如何在没有 OpenCv Manager 的情况下运行 OpenCV 代码

    我正在使用 OpenCV4Android 版本 2 4 10 并在 Samsung Galayx GT I9300 上测试我的代码 我遇到的问题是 我必须从 Play 商店下载 Opencv Manager 以便我的 opencv 代码运行
  • 从一个 Mat 复制到另一个 Mat 仅接近黑色像素

    I have Mat difference其中有一些黑色像素 或者几乎是黑色像素 gt 如果发生地震 建筑物会移动等 并且Mat current它由具有自然色彩的真实图像组成 我想替换中的像素Mat current这些黑色像素Mat dif
  • OpenCV非旋转图像拼接

    我正在 OpenCV 中进行图像拼接 从不同位置拍摄平面场景的照片并尝试构图全景图 我修改了缝合示例以满足我的需要 openCV 拼接管道的问题是 它假设相机纯粹旋转 但对我来说情况并非如此 当拍摄的照片与场景完全正交时 没有相机旋转 只是
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • OpenCV:使用 StereoCamera 系统对颜色标记进行 3D 姿态估计

    我有一个立体摄像系统并使用两者正确校准它 cv calibrateCamera and cv stereoCalibrate My reprojection error似乎没问题 凸轮0 0 401427 凸轮1 0 388200 立体声
  • `opencv.android.JavaCameraView` 和 `opencv.android.NativeCameraView` 有什么区别

    正如主题中所述 有什么区别opencv android JavaCameraView and opencv android NativeCameraView 与其他主要优点相比 有哪些优点可以提供更多选择 来自OpenCV 文档 http
  • Opencv - 找不到头文件

    我正在尝试使用 opencv 开始开发 问题是 到目前为止我几乎无法设置 opencv 因为我找不到它的头文件 我对此主题进行了一些研究 但没有一个真正有帮助 下面是一些链接 opencv2 包含文件在哪里 https stackoverf
  • 如何将图像从 np.uint16 转换为 np.uint8?

    我正在创建一个图像 image np empty shape height width 1 dtype np uint16 之后我将图像转换为 BGR 模型 image cv2 cvtColor image cv2 COLOR GRAY2B
  • 从 2 个摄像头捕获(OpenCV、Python)[重复]

    这个问题在这里已经有答案了 所以我试图从 openCV 中的两个摄像头 python 和 windows 7 进行捕获 我用一台相机拍摄的效果很好 你也会注意到我正在对图像做一些时髦的事情 但这并不重要 这是尝试使用两个的代码 import
  • 将线性数组转换为二维矩阵

    我有一个浮点指针 数组 它代表一个图像 它的元素计数和索引具有宽度 高度 图像不像矩阵 其原点位于左上角 相反 它的原点位于左下角 就像在笛卡尔坐标系中一样 达到最大宽度后 它从左侧开始下一行 所以我想有效地将 这个数组转换为二维矩阵 可选
  • 对同色像素块的边界进行着色

    我有一张有 5 种不同颜色的图像 在这种情况下 随机生成 w h 40 27 img Image new RGB w h pixels img load available colors r 255 13 18 b 72 64 255 y
  • OpenCV 机器学习算法的 CSV 格式

    OpenCV 中的机器学习算法似乎使用以 CSV 格式读取的数据 参见示例这个 cpp文件 https code ros org trac opencv browser trunk opencv samples c tree engine
  • 使用 OpenCV VideoWriter 将 RTSP 流存储为视频文件

    我正在使用 OpenCV 开发一个 Python 模块 该模块连接到 RTSP 流以对视频执行一些预处理 主要是降低 fps 和分辨率 然后将其存储在文件系统中 但是 即使在尝试了几种编解码器 寻找类似的开发之后 我总是得到一个空的视频 我
  • 如何将 OpenCV 的测试框架与 CMake 结合使用?

    好像 OpenCV 有一个测试框架 https github com Itseez opencv tree ef91d7e8830c36785f0b6fdbf2045da48413dd76 modules ts include opencv
  • Opencv 运动检测与跟踪

    我需要在网络摄像头的视频帧中进行强大的运动检测和跟踪 背景总是一样的 目的是识别物体的位置 如果可能的话没有阴影 但并不急于去除阴影 我已经尝试过用于背景减法和阈值化的opencv算法 但这仅取决于一个图像作为背景 如果背景的亮度 或相机自
  • 在 Python 中使用音频流 RTMP 通过管道和 OpenCV 到 FFmpeg

    我正在尝试使用音频流式传输 FFmpeg 我将在下面展示我的代码 导入模块 import subprocess as sp 创建变量 rtmpUrl rtmp a rtmp youtube com live2 key camera path
  • python openCV 中的人口普查变换

    我开始在一个与立体视觉相关的项目中使用 openCV 和 python 我找到了关于使用 openCV 在 C 中进行人口普查转换的文档页面 link http docs opencv org 3 1 0 d2 d7f namespacec
  • 如何使用Android opencv使图像的白色部分透明

    我无法链接超过 2 个网址 因此我将我的照片发布到此博客 请在这里查看我的问题 http blog naver com mail1001 220650041897 http blog naver com mail1001 220650041

随机推荐

  • 在 RecyclerView 中垂直居中所选项目

    我正在尝试为我的应用程序实现某种轮式选择器 因为当前选项依赖于自定义Views或旧的ListView 所以我想将我的解决方案基于RecyclerView 到目前为止我所做的就是在开始和结束时设置RecyclerView two View具有
  • ajax 调用后使用 PHP 重定向

    我正在执行以下 ajax 调用 save sale click function var save sale 1 ajax type GET url summary php data save sale save sale success
  • 本地分支的文件存储在哪里

    今天我遇到了一件有趣的事情 这让我想知道 git 如何处理本地分支 所以我在我的存储库上遇到了一些问题 删除了本地文件夹 它进入了回收站 并重新克隆 也许极端 在我这样做之后 我意识到我删除了一个我从未推送过的本地分支 因为它是一个个人项目
  • Spring MVC 的 ehcache 或 spring 缓存中的最佳缓存实践是什么?

    计划在基于 Spring Web 的应用程序中实现静态数据的缓存机制 谁能解释一下哪种是最好的以及它是如何工作的 EhCache 弹簧缓存 免责声明 我是兵马俑 Software AG http www terracotta org员工 E
  • Ruby 中的全局方法 [重复]

    这个问题在这里已经有答案了 如果 Ruby 中的所有 函数 都是方法 那么当我调用方法而没有明确提及调用它们的对象时 它们会发送给谁 Ruby 编程语言一书 Flanagan Matsumoto 说 如果省略对象 则在 self 上调用该方
  • 在 Rust 中调用存储在结构体中的堆栈分配闭包

    我将闭包存储在如下结构中 derive Clone struct S lt a gt func a FnOnce gt u32 fn main let s S func 0 let val s func println val 当我编译时
  • 正则表达式检查新行

    我想检查 if 语句是否在一行或下一行而不带大括号 如下所示 if blah blah do something or if foo foo do something 我目前拥有的正则表达式是 但不起作用 有人有主意吗 详细说明此正则表达式
  • 动态行值错误地更新到 mysql php

    在这里 我尝试使用 php 编辑和更新我的动态行值 这是我的 edit php 页面编码 它完美地从 mysql 获取动态行数据 uid int GET id tariff query mysql query SELECT FROM ebv
  • 如何在对象上使用 ES6 哈希映射而不维护引用(在 Java 哈希码中)

    我一直在 io js 中尝试 ES6 Map 并意识到我不能执行以下操作 var map new Map map set key value some string map get key value undefined I want so
  • 从 eclipse 调试 Ant 任务

    我正在 eclipse ide 中使用 java 开发自定义 ant 任务 是否有可能以某种方式调试它 那是在java行上放置一个断点 当执行ant时 它会停在那里 我可以单步执行代码吗 编辑 由于这个问题已作为重复问题关闭 我想详细说明为
  • 通过ajax传递数据安全吗?

    我创建了脚本 它将使用此命令计算某些特定 div 的子级 div content children size 通过这个计数 如果这个计数是 12 我知道从 mysql 获取 12 到 18 使用firebug 我可以找到这个计数 它将发布到
  • 如何仅为django中的某些路径定义中间件?

    无论如何 有没有为 django 中的特定路由或路由组定义中间件 就像 laravel 一样 我们可以将其定义如下 Route get admin profile function gt middleware auth 从历史上看 您可以利
  • NightmareJS截图回调

    我正在使用这个框架来制作几个网址的屏幕截图 截图的过程是异步的 并且该方法没有提供执行回调的方法 我想在这个脚本上每次截图时执行回调 nightmare new Nightmare urls forEach function url nig
  • 使用 xml 属性创建 XML 结构

    我正在尝试解决 xml 属性的难题 问题是我们已经广泛使用了具有这种结构的文件 我不能偏离它
  • $PATH 相对于别名的优势

    我对 Linux 和 Unix 比较陌生 在互联网的帮助下我终于弄清楚了如何 PATH和我的别名 bashrc work 但我确实找不到任何描述何时使用哪个的内容 假设我在 Library Frameworks 中安装了 Python3 3
  • 两个函数使用类型注释进行编译。删除一个注释 - 无法编译。删除两个 - 再次编译。为什么?

    注意这个反射计划 LANGUAGE ScopedTypeVariables RecursiveDo import Control Applicative import Control Monad import Control Monad I
  • 使用遮罩从图像中裁剪字母

    我需要的 1 从图库或相机中选择图像 2 书写和文字 3 文本与图像一起裁剪 下图可以更清楚地说明我到底需要什么 我知道图像的遮蔽和裁剪 即使我用框架进行了遮蔽表情符号我的应用程序 http www youtube com watch v
  • wp_enqueue_script() 和 wp_register_script() 之间有什么区别

    我不清楚我将在何时何地使用wp enqueue script or wp register script 简单来说 wp enqueue script means 添加到队列中以注册文件 wp register script means 立
  • 如何对可枚举进行分块?

    我需要一种优雅的方法 它接受一个可枚举值 并获取可枚举值的可枚举值 其中每个元素的数量相同 但最后一个是 public static IEnumerable
  • 是否可以使用 gcov 覆盖共享库的代码?

    我尝试测试使用 OpenCV 共享库的可执行文件 当使用 gcov 了解覆盖了哪些代码行时 我只能获取有关我的 cpp 文件和库的 hpp 的信息 没有显示有关库的 cpp 文件的信息 我用 pg coverage 标志编译并链接 是的 g