Я использую 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» … но не знаю, как это сделать …
Спасибо
Задача ещё не решена.
Других решений пока нет …