gcov,make,cmake,ctest覆盖构建
gcov, make, cmake, ctest coverage build
我有一个项目,它由我的项目和多个外部项目组成,这些项目是一个建筑,就像我的项目正在使用其他项目一样。它的结构看起来像:
external
- subproj1
- subproj2
another_external_project
myproject
- src
- tests
我正在构建它,首先运行"cmake"来配置它,查看是否满足所有依赖项,然后"make"来编译它。测试使用"ctest"运行。问题是我只需要覆盖我的myproject/src目录。
我尝试生成的gcda文件:
- 添加CPP_FLAGS"-覆盖"来制作,但我只看到一些文件,在我的项目中没有一个需要的覆盖文件
- 将覆盖范围标志添加到CMakelist,但仍然相同
问题如下:1) 我应该在哪一步添加覆盖范围标志?在配置?还是在"make"?2) 如果是,我是否应该将这些标志添加到ctest CMakelist?
好的,找到了答案。
问题是,当使用cmake进行配置时,我应该将其传递为:
cmake -D"CMAKE_CXX_FLAGS=-g -O2 -w -fprofile-arcs -ftest-coverage" -D"CMAKE_C_FLAGS=-g -O2 -w -fprofile-arcs -ftest-coverage"
在使用make构建应用程序时,我应该传递其他变量,但使用相同的标志:
make -j`cat /proc/cpuinfo | grep processor | wc -l` CFLAGS='-g -O2 -w -fprofile-arcs -ftest-coverage' CXXFLAGS='-g -O2 -w -fprofile-arcs -ftest-coverage'
之后,我运行测试并生成报告。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- 使用ios:ate写入到流会覆盖现有文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 我可以重新分配/覆盖std::字符串吗
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- 叮叮当当在修复时插入多个"覆盖"说明符
- 谷歌模拟和覆盖关键字
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- gcov,make,cmake,ctest覆盖构建
- 如何在构建Cython模块时覆盖-DNDEBUG编译标志
- 构建和使用包含覆盖功能的pnacl-compiler-rt