Я использую Clang 7 в Windows и Linux для создания покрытия на проекте C ++.В 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
до:
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""компоновщику тоже ... но не знаю как это сделать ...
Спасибо