我已经在CMakeLists.txt中启用了覆盖率,以便使用
add_compile_options(--coverage)
字符串
我想把这个添加到构建系统中,这样在一个成功的构建之后,构建系统会运行单元测试并发送覆盖报告(lcov)。
构建系统从调试构建中剥离(strip --strip-all)调试符号,剥离的二进制文件用于生产和测试环境。问题是编译器添加的覆盖代码无法从二进制文件中剥离。因此二进制文件的大小更大。
我知道添加的覆盖代码现在是二进制代码的一部分,剥离只剥离调试符号。剥离不能区分覆盖代码和功能。有没有办法从二进制代码中剥离覆盖代码?
调试构建的二进制大小为
13949142 - Debug build
1014326 - Stripped Debug build
型
包含覆盖率代码的调试生成的二进制大小
16152614 - Debug build with coverage
1575174 - Stripped Debug build with coverage
型
1条答案
按热度按时间hjzp0vay1#
有没有办法从二进制代码中剥离覆盖代码?
不,你必须重新编译,不带--coverage选项。