我有一个用Boost测试框架编写的测试套件,其中所有测试源文件都在一个目录中(我们称它为 tests ),而所有外部依赖项都在另一个目录中,称为 ext 。我已经用CMake配置了我的构建,并且试图生成代码覆盖率结果(使用clang和llvm-gcov)。
我在CMake文件中添加了以下内容:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
问题在于,仅为 tests 中的文件生成.gcno文件,而不为 ext 中的外部文件生成。我尝试使用 INCLUDE_DIRECTORIES(dir)将外部目录包含在CMake文件中,并尝试将外部文件添加为可执行文件所需的源文件,但都没有起作用。任何帮助表示赞赏。