Я новичок в llvm и clnag. Я пытаюсь скомпилировать и связать код в clang для генерации покрытия кода. Я получаю ошибку компоновки. Ниже приведены минимальные шаги для воспроизведения проблемы.
У меня естьпростой три файла
// Abc.h
void printValue(int number);
// Abc.cpp
#include "Abc.h"
void printValue(int number)
{
cout<<"Nnumber is "<<number<<endl;
}
// Test.cpp
#include "Abc.h"
void Func1()
{
printValue(10)
}
int main()
{
Func1()
return 0
}
Я использую c lang для компиляции программы.Когда я компилирую с помощью следующих команд, он получает компиляцию и ссылку
clang ++. Exe Abc.cpp - c clang ++. Exe Abc.o Test.cpp - c - output.exe
output.exe getгенерируется
, но когда компилируется тот же файл с использованием - fprofile - instr - generate - fcoverage - mapping, это дает ошибку компоновки
clang ++. exe Abc.cpp - fprofile - instr - generate - fcoverage -mapping - c
clang ++. exe Abc.o Test.cpp - fprofile - instr - generate - fcoverage - mapping - o output.exe
Ниже приведены некоторые ошибки связывания
Тест - d715a5.o: ошибка LNK2005: __profd_??$?6U?$ char_traits @ D @ std @@@ std @@ YAAEAV? $ basic_ostream @ DU? $ char_traits @ D @ std @@@ 0 @ AEAV10 @ PEBD @ Z уже определено в Abc.o
Тест - d715a5.o: ошибка LNK2005: __profd_?длина @? $ char_traits @ D @ std @@ SA_KQEBD @ Z уже определена в Abh.o
Любая помощь будет отличной.