2009-10-15 20 views
27

Kısa süre önce çok projeli bir çözümü, her proje için .libs yerine .dls kullanacak şekilde dönüştürdüm. Ancak, şimdi örnekte belirtildiği gibi her proje için bir bağlayıcı uyarısı alıyorum. MSDN, bu konuda yardımcı olan tüm hizmet için hizmet vermedi. Neden bu ve nasıl çözebilirim?LNK4075: '/ OPT: ICF' belirtimi nedeniyle '/ EDITANDCONTINUE' göz ardı ediliyor

2 uyarı LNK4075 Uyarı: '/ EDITANDCONTINUE' görmezden nedeniyle '/ OPT: ICF' You "Düzenle ve devam et" sahip destek veya optimizasyonlar ya şartname LudoCamera.obj

+0

Neden bir bağlayıcı hatadır? Sana inanıyorum, sadece C++ ve görsel stüdyosu ile deneyimim yok. ZI (Program Veri Tabanı Düzenle ve Devam Et) 'den Zi (Program Veri Tabanı)' a geçiş yapmak bu hataları ortadan kaldırmış, ancak kök problemini gizliyor olabilir. Detaylandırır mısınız? – Mark

+2

@Mark, derlemenin üç aşamasını, (1) ayrıştırma - her bir cpp dosyasının ne dediğini anlama, (2) her bir işlev dosyası için kod oluşturma - oluşturucu op kodları ve (3) bağlantı - her işlev tortu için op kodlarını bağlama. Bu uyarı, bir linker hatası olduğunu belirten LNK ile başlar. –

+1

Bu, "/ EDITANDCONTINUE" seçeneği olmadığında "göz ardı etme/EDITANDCONTINUE" ifadesinin hala geçerli olduğu hoş bir dokunuş. –

cevap

30

. Genellikle, hata ayıklama yapıları üzerinde "Düzenle ve devam et" ifadesini yerleştirirsiniz ve sürüm oluşturmadaki optimizasyonları yaparsınız.

Düzenleme ve devam etme, hata ayıklama yaparken kodu değiştirmenize ve yalnızca programı çalıştırmaya devam etmenize olanak tanır. Kodun da optimize edilmesi gerekiyorsa desteklenmez.

+0

Geçebileceğim belirli bir bayrak var mı? Ben \ Zi’yi geçtim ama yine de bu uyarıyı aldım. – CroCo

+0

Bu '/' değil '' 'değil. Ayrıca, –

0

Ne olduğunu biliyorum, sürüm sürümleri değiller. Linker hala hata ayıklama yapıları olduğunu düşünüyor, hala hata ayıklama düzenleme ve hala hata ayıklama sırasında kullanılan işlevselliği devam ediyor.

Bob. .dll için .lib bir VS2008 projesini dönüştürürken

+0

oluşturmaya çalıştığınız derlemede (DEBUG veya RELEASE) seçtiğinizden emin olun, debug projesinde içe aktarılan sürüm için bir lib derledim ve uyarı belirdi. Gerçekten böyle bir şey. – TechNyquist

6

Ben de bu uyarısını alarak geçici çözüm için Varsayılan'dan ayıklama Win32 yapılandırmasına Bağlayıcı/Optimizasyon ayarlarını değiştirmek için oldu: (Referanslanmamış Verilerini tutun =

Referanslar/OPT: NOREF)

Yedekli COMDATs çıkarmak Do Not COMDAT Katlama = Enable (/ OPT: NOICF) Ben de bu sorun vardı

13

. Proje Özellikleri'ni açtım ve sonra C/C++ sekmesinde Genel'i tıklattım. Program Veritabanına (/ Zi) değiştirdiğim 'Hata Ayıklama Bilgi Biçimi' yazan bir seçenek var ve artık uyarı almadım.

Umarım bu yardımcı olur. Selamlamak

Richard

İlgili konular