xcrun llvm-cov show命令返回错误:加载覆盖失败:没有这样的文件或目录的可能原因是什么?
我有一个iOS库。lib构建的结果是*.一个二进制文件。我在项目中有一个方案,其中也包含GTest单元测试。
所以我执行:
xcodebuild test \
-sdk iphonesimulator \
-destination "$DESTINATION" \
-derivedDataPath "$ROOT"/DerivedData \
-scheme unitTestsTarget \
-project "$ROOT"/libProject.xcodeproj \
-enableCodeCoverage YES在那之后
xcrun llvm-profdata merge .../Coverage.profdata .../EA8FF09E-3BFE-42D2-BFA7-A39D69E7F688-45921.profraw -output ./merged.profdata和
xcrun llvm-cov show -format=html -use-color=true -output-dir=./coverage-html -instr-profile ./merged.profdata -object ./DerivedData/Build/Products/Debug-iphonesimulator/myLib.a -ignore-filename-regex='\''.*\.h'\'''最后一个命令给了我
error: ./myLib.a: Failed to load coverage: No such file or directory我有三个类似结构的模块,其中一个工作正常,另外两个给我这个错误。
我真的很感激有人能给出这个错误的可能原因和可能的解决方案的提示。
发布于 2021-02-26 19:05:53
我在Xcode构建的静态库中遇到了同样的问题。
通过一些探索,我注意到传入在构建过程中生成的显式.o文件似乎可以工作,但输出仅限于该文件。
xcrun llvm-cov report \
--instr-profile=Build/ProfileData/40F9DE10-F76F-46C0-A8D2-E1D427DE08A5/Coverage.profdata \
--object Build/Intermediates.noindex/MyStaticLib.build/Debug-iphonesimulator/MyStaticLib.build/Objects-normal/x86_64/some_file.o我尝试手动链接Build文件夹中的所有这些.o文件,如下所示,以生成一个组合的目标文件:
ld -r -o CombinedObject.o \
Build/Intermediates.noindex/MyStaticLib.build/Debug-iphonesimulator/MyStaticLib.build/Objects-normal/x86_64/*.o在此之后,我可以运行并获得覆盖报告。
xcrun llvm-cov report \
--instr-profile=Build/ProfileData/40F9DE10-F76F-46C0-A8D2-E1D427DE08A5/Coverage.profdata \
CombinedObject.o因此,从本质上讲,我必须将各个.o文件组合成一个组合的目标文件,然后llvm-cov才能对其进行处理。
https://stackoverflow.com/questions/66245096
复制相似问题