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

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • kindlechatmail

    kindlechatma

    25 AĞUSTOS 2010
  • mliskIT

    mliskIT

    29 Mart 2012