Я пытаюсь создать простое приложение cmake, чтобы проверить функциональность покрытия, предлагаемую clang в Windows (в Linux все работает нормально).
Среда: Используемая версия Clang: 7.0 И использование набора инструментов LLVMс инструментами сборки Visual Studio 2017 cmake 3.12 с генератором ниндзя
То, что я делаю, очень просто: CMakeLists.txt
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
project(test)
add_compile_options(--coverage)
add_executable(${PROJECT_NAME}
main.cpp
)
main.cpp настолько прост, насколько он может получить:
#include <iostream>
#include <string>
int main(int argc, char const *argv[]) {
std::cout << "\ndone.\n";
return 0;
}
с использованием сред инструментов сборки vcvarsall.bat Я инициализирую окружение для запуска и компиляции с помощью clang, например:
mkdir build
cd build
cmake -GNinja -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_LINKER=lld-link ..
cmake --build .
и появляются следующие ошибки:
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)
Что я делаю неправильно или на что мне нужно ссылаться?
Спасибо
Обновление: с помощью ввода Фреда Я понял, какую библиотеку я должен связатьи если я добавлю следующее:
link_libraries("C:/Program Files/LLVM/lib/clang/7.0.0/lib/windows/clang_rt.profile-x86_64.lib")
все работает ... но действительно ли это решение моей проблемы?