Ошибка компоновки при компиляции с -fprofile -instr -generate -fcoverage-mapping flag - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в 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

Любая помощь будет отличной.

...