Я использую clang 7 в Windows и Linux для создания покрытия в проекте С++. В Linux я могу успешно сгенерировать всю информацию о покрытии, просто добавив флаги компиляции:
-fprofile-instr-generate -fcoverage-mapping
Но в Windows он возвращает мне ошибки компоновщика, а также llvm-cov не существует в каталоге установки llvm...
Итак, я предполагаю, что clang не поддерживает покрытие кода в Windows? это правильно?
(если нет, можете ли вы сказать мне, что мне не хватает на этапе связывания?)
PS: ошибки компоновщика идут от:
lld-link.exe: error: duplicate symbol: __profn_??_GTestFactoryBase@internal@testing@@UEAAPEAXI@Z
to:
lld-link.exe: error: undefined symbol: __llvm_profile_runtime
>>> referenced by src\app\CMakeFiles\app.dir\main.cpp.obj:(__llvm_profile_runtime_user)
lld-link.exe: error: undefined symbol: __llvm_profile_register_function
>>> referenced by src\app\CMakeFiles\app.dir\main.cpp.obj:(__llvm_profile_register_functions)
>>> referenced by src\app\CMakeFiles\app.dir\main.cpp.obj:(__llvm_profile_register_functions)
PS: я использую Visual Studio Build Tools для компиляции с clang в Windows.
PS2: из того, что я прочитал, нам также нужно передать "-fprofile-instr-generate" компоновщику... но не знаю, как это сделать...
Спасибо