SORU
12 EYLÜL 2010, Pazar


Visual Studio 2010'in garip "LNK4042" uyarı;

Sadece dayak (çok zor değil) önemsiz olmayan Visual Studio uyarı bazı 2010 yılına kadar baş (C) üzerinde durdum.

Derleme aşağıdaki çıktıyı verdi:

1 Debug\.n : uyarı LNK4042: nesne birden çok kez belirtilen; ekstra dikkate alınmaz
1 Debug\olun.n : uyarı LNK4042: nesne birden çok kez belirtilen; ekstra dikkate alınmaz
1 Debug\görüntüleyin.n : uyarı LNK4042: nesne birden çok kez belirtilen; ekstra dikkate alınmaz
1 kimlik.n : error LNK2019: çözülmemiş bir dış simge void __cdecl test::identity::view(void) (?görüntülemek@kimlik@@@YAXXZ test) fonksiyonu void __cdecl test::identity::identity(void) referans (?@0test@@YAXXZ kimlik)
1 kimlik.n : error LNK2019: çözülmemiş bir dış simge void __cdecl test::identity::make(void) (?@kimlik@@@test YAXXZ) fonksiyonu void __cdecl test::identity::identity(void) referans (?@0test@@YAXXZ kimlik)
1 Aralık.n : error LNK2019: çözülmemiş bir dış simge void __cdecl test::range::is(void) (?başvurulan işlev void __cdecl test::range::range(void)@@@@YAXXZ test aralığı) (?@0test@@YAXXZ Aralık)

Linker hata hep hata ayıklama için bir ağrı... ama çözümlenemeyen başvurular vardı, ve bu yüzden kontrol ettim. ama kaynağı iyi biçimlendirilmiş... ve sonunda kafama dank etti:

Klasör hiyerarşisi çok benziyor:

src/
  identity/
    is.cpp
    make.cpp
    view.cpp
  range/
    is.cpp
    make.cpp
    view.cpp

ve (ben her zaman "" klasör yapısı) gerçek. bu mimicks diye ayarlamış Çözüm hiyerarşi

Ve tanı sonuçları:

Debug\is.obj
Debug\make.obj
Debug\view.obj

.obj iki kez linker için kabul edilmiş olan ve göz ardı edilecektir söyleyen bir uyarı ile birlikte.

Daha fazla arama: Görsel düzgünce klasör hiyerarşisi dümdüz, ve bu nedenle düzgün kaynak derlemek için değiştiremiyor.

Şu anda, sadece sorunu kapsaması gereken dosyaları yeniden adlandırma düşünüyorum...

ama bir şekilde Visual Studio için dosya dümdüz hiyerarşi ?

CEVAP
16 EYLÜL 2010, PERŞEMBE


Eğer tüm proje özelliklerini açarsanız cevap olduğuna inandığım post geçmek istedim, ve değiştirmek C/altında değeri C ->Çıktı Dosyaları ->"Aşağıdaki gibi: . "Dosya nesnesi

(İntDir) $/%(RelativeDir)/

VS 2010 altında, ben bu nesne dosyaları (windows herhangi bir deli şartlar altında izin vermiyor sanırım aynı dizinde aynı ada sahip iki dosya var) tüm belirsizliği ortadan kaldırmak inanıyorum. 11* *ayrıntıları göz atın lütfen.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • kindlechatmail

    kindlechatma

    25 AĞUSTOS 2010
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012