clang / llvm是否支持生成测试覆盖文件,就像生成.gcov文件的GCC一样。如果有,怎么样?
答案 0 :(得分:3)
我听说XCode仍在使用NDA,但我可以谈谈LLVM和Clang。 LLVM现在知道如何在编译时发出.gcno文件,并在程序运行时发出.gcda文件(链接到libprofile_rt)。在LLVM内部,它使用调试信息中的数据将代码与文件和行号信息相关联。
要使用它,您需要SVN HEAD的LLVM和Clang。那个clang应该支持gcc用于构建覆盖范围的相同标志; --coverage会做,或者你可以单独使用-ftest-coverge和-fprofile-arcs。对于链接,GCC支持-lgcov,这对于clang + llvm是错误的,应该用--coverage替换,因为该库的LLVM版本名为profile_rt,而不是libgcov。