SORU
19 ŞUBAT 2009, PERŞEMBE


Nerede gcov simgeler?

Gcov ile basit bir uygulama derlemeye çalışıyorum ve aşağıdaki bağlantı hataları alıyorum:

gcc AllTests.o CuTestTest.o CuTest.o -o TestTest
AllTests.o: In function `global constructors keyed to 0_RunAllTests':
/home/p7539c/cutest/AllTests.c:26: undefined reference to `__gcov_init'
AllTests.o:(.data 0x44): undefined reference to `__gcov_merge_add'
CuTestTest.o: In function `global constructors keyed to 0_TestCuStringNew':
/home/p7539c/cutest/CuTestTest.c:30: undefined reference to `__gcov_init'
CuTestTest.o:(.data 0x64): undefined reference to `__gcov_merge_add'
CuTest.o: In function `global constructors keyed to 0_CuStrAlloc':
/home/p7539c/cutest/CuTest.c:379: undefined reference to `__gcov_init'
CuTest.o:(.data 0x184): undefined reference to `__gcov_merge_add'
collect2: ld returned 1 exit status
make: *** [TestTest] Error 1

Kayıp semboller yerini bulmak için görünmüyor olabilir. gcov makinede gcc sürüm 4.1.2 çalışıyor

Herhangi bir fikir? Teşekkürler.

Düzen:

Her şey tek bir oluşan bir uygulama ile gcov kullanırken iyi iş gibi görünüyor .c dosya. Birden çok var .c dosyaları (dolayısıyla birden fazla .dosyaları o) yukarıdaki sorunum var.

Derleme adımları aşağıdaki gibi görünür:

cc -fprofile-arcs -ftest-coverage -g   -c -o AllTests.o AllTests.c
cc -fprofile-arcs -ftest-coverage -g   -c -o CuTestTest.o CuTestTest.c
cc -fprofile-arcs -ftest-coverage -g   -c -o CuTest.o CuTest.c

CEVAP
18 Mayıs 2009, PAZARTESİ


Sadece zaman inanılmaz miktarda çok benzer bir hata ayıklama geçirdi. Öğrendiğim şey şu:

  • Derleme -fprofile-arcs -ftest-coverage geçmek Zorundasınız.
  • Bağlarken -fprofile-arcs geçmek Zorundasınız.
  • Hala bağlarken garip linker hataları alabilirsiniz. Bu gibi bakarlar:

    libname.a(objfile.o):(.ctors 0x0): undefined reference to 'global constructors keyed to long_name_of_file_and_function'

Bu senin biriyle gconv var olan sorun, derleyici tarafından oluşturulan kurucular (benim durumumda, kopya-yapıcı bir) anlamına gelir. Bu işlev belirtilen hata iletisi kontrol edin,-yapıları kopyalayın bakın, ve eğer, bu sınıfların herhangi bir kopya kurucu yok ise. Bir tane ekleyin ve gitmek hata olur.

Ya da optimize ayrıca bu etkiler Olup olmadığını. Edit: Eğer sorun yaşıyorsanız / iyileştirmeleri kapatarak açmayı deneyin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canal TekZoom

    Canal TekZoo

    1 NİSAN 2012
  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • WestsideMrArO

    WestsideMrAr

    6 EKİM 2010