使用-fprofile -instr -generate -fcoverage-mapping标志进行编译时出现链接错误

时间:2019-02-13 11:34:06

标签: llvm llvm-clang

我是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生成

但是当使用-fprofile-instr-生成-fcoverage-映射编译同一文件时,它给出了链接错误

clang ++。exe Abc.cpp-fprofile-instr-生成-fcoverage-映射-c

clang ++。exe Abc.o Test.cpp-fprofile-instr-生成-fcoverage-映射-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_?在Abh.o中已定义的length @?$ char_traits @ D @ std @@ SA_KQEBD @ Z

任何帮助都将非常有用。

0 个答案:

没有答案