macos - CLang कोड कवरेज-मैक ओएस एक्स-लिंकर त्रुटि




linker code-coverage (2)

मैंने इसे हल किया

मुझे निम्नलिखित लिंकर फ्लैग याद आ रही थी I

-वाल्फ़ -फप्रोफ़ाइल-आर्क्स-फास्ट-कवरेज

जीसीवी की जीसीसी सुविधाओं और एलसीओवी उपकरण का उपयोग करते हुए मैं लिनक्स पर हमारे सी ++ कोड आधार पर सफलतापूर्वक कोड कवरेज जानकारी प्राप्त कर सकता था।

लेकिन मैक ओएसएक्स में परेशानी हो रही है

जैसा कि ऐप्पल में अब क्लासिक जीसीसी कंपाइलर नहीं है, और हमें डर है कि एलएलवीएम-जीसीसी कंपाइलर एक दिन भी गायब हो जाएगा (एलएलवीएम-जीसीसी भी XCode 5.0 में एक विकल्प के रूप में उपलब्ध नहीं है) - हमने संकलन करने के लिए CLang का इस्तेमाल करने का फैसला किया है कोड।

कोड कवरेज जानकारी उत्पन्न करने के लिए इन झंडे में गुजरने वाला CLang संकलक iam का उपयोग करते समय -> -g -fprofile-arcs -festest-coverage।

मैं .gcno फ़ाइलों को ऑब्जेक्ट फ़ाइलों के साथ उत्पन्न हो रही देख सकता हूँ।

जब यह लिंक करने के लिए आता है - "-lgcov" लिंकर झंडा जो जीसीसी के साथ काम करता है समर्थित नहीं है।

क्लैंग / एलएलवीएम पर कोड कवरेज अब "profile_rt" लाइब्रेरी द्वारा समर्थित है। दुर्भाग्य से यह लाइब्रेरी खोजने के लिए थोड़ा मुश्किल है क्योंकि एप्पल ने किसी भी कारण से इसे डिफ़ॉल्ट पुस्तकालय पथ में शामिल नहीं किया। इसके बजाए आपको इसके खिलाफ लिंक करने के लिए / usr / lib / मैन्युअल रूप से नेविगेट करना होगा:

और निर्दिष्ट के रूप में libprofile_rt.a पुस्तकालय के खिलाफ लिंक कर रहा हूँ।

लेकिन मेरे पास लिंकर मुद्दे हैं I

लेकिन मैं इन लिंकर त्रुटियों को जारी रखता हूं

Undefined symbols for architecture x86_64:
  "_llvm_gcov_init", referenced from:
      ___llvm_gcov_init in Iso9660Reader.o
      ___llvm_gcov_init in AutoExtractCreator.o
      ___llvm_gcov_init in TempFilePath.o
      ___llvm_gcov_init in TempPath.o
      ___llvm_gcov_init in ReadDirectory.o
      ___llvm_gcov_init in OpenDirectory.o
      ___llvm_gcov_init in SpltPath.o
      ...
ld: symbol(s) not found for architecture x86_64 

मैंने भी गतिशील पुस्तकालय के खिलाफ लिंक करने की कोशिश की - libprofile_rt.dylib / usr / lib फ़ोल्डर में पाया - लेकिन मुझे अभी भी एक ही समस्या मिलती है।

यह क्लांग संस्करण पर्वत शेर पर चल रहा है।

clang --version
Apple LLVM version 5.0 (clang-500.2.75) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin12.5.0
Thread model: posix

मेरे पास भी XCode 5.0 और डेवलपर टूल्स स्थापित हैं I

किसी भी उत्तर की सराहना की जाएगी।

धन्यवाद!!


उपरोक्त उत्तर मेरे लिए OSX Yosemite (10.10.3) पर Xcode 6.3.1 पर काम नहीं किया। ऐसा लगता है कि ऐप्पल ने इन पुस्तकालयों को चारों ओर ले जाया। मैं निम्नलिखित संकलन विकल्पों के साथ काम करने में सक्षम था:

-lclang_rt.profile_osx 
-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.1.0/lib/darwin