Bağlayıcı Araçları Uyarısı LNK4098
defaultlib 'library' diğer kitaplıkların kullanımıyla çakişer; /NODEFAULTLIB:library kullanın
Uyumsuz kitaplıklarla bağlantı kurmaya çalışıyorsunuz.
Dekont
Çalışma zamanı kitaplıkları artık farklı türlerin karıştırılmasını önlemek için yönergeler içeriyor. Aynı programda farklı türler kullanmayı veya çalışma zamanı kitaplığının hata ayıklama ve hata ayıklama dışı sürümlerini kullanmayı denerseniz bu uyarıyı alırsınız. Örneğin, bir dosyayı bir tür çalışma zamanı kitaplığını ve başka bir dosyayı başka bir tür (örneğin, perakende için hata ayıklama) kullanmak üzere derlediyseniz ve bunları bağlamaya çalıştıysanız, bu uyarıyı alırsınız. Aynı çalışma zamanı kitaplığını kullanmak için tüm kaynak dosyaları derlemeniz gerekir. Daha fazla bilgi için bkz . /MD, /MT, /LD (Çalışma Zamanı Kitaplığını Kullan) derleyici seçenekleri.
Bağlayıcının hangi kitaplıkları arayabileceğini bulmak için bağlayıcının /VERBOSE:LIB anahtarını kullanabilirsiniz. Örneğin, yürütülebilir dosyanız çok iş parçacıklı, hata ayıklaması olmayan çalışma zamanı kitaplıklarını kullandığında, bildirilen listede LIBCMTD.lib, MSVCRT.lib veya MSVCRTD.lib değil LIBCMT.lib bulunmalıdır. Yoksaymak istediğiniz her kitaplık için /NODEFAULTLIB kullanarak bağlayıcıya yanlış çalışma zamanı kitaplıklarını yoksaymasını söyleyebilirsiniz.
Aşağıdaki tabloda, kullanmak istediğiniz çalışma zamanı kitaplığına bağlı olarak hangi kitaplıkların yoksayılması gerektiği gösterilmektedir. Komut satırında, her kitaplığın yoksaymak için bir /NODEFAULTLIB seçeneğini kullanın. Visual Studio IDE'de, Belirli Varsayılan Kitaplıkları Yoksay özelliğindeki kitaplıkları noktalı virgülle yoksaymak için ayırın.
Bu çalışma zamanı kitaplığını kullanmak için | Bu kitaplıkları yoksay |
---|---|
Çok iş parçacıklı (libcmt.lib) | msvcrt.lib; libcmtd.lib; msvcrtd.lib |
DLL kullanılarak çoklu iş parçacığı kullanımı (msvcrt.lib) | libcmt.lib; libcmtd.lib; msvcrtd.lib |
Çok İş Parçacıklı Hata Ayıklama (libcmtd.lib) | libcmt.lib; msvcrt.lib; msvcrtd.lib |
DLL kullanarak Çoklu İş Parçacığı Ayıklama (msvcrtd.lib) | libcmt.lib; msvcrt.lib; libcmtd.lib |
Örneğin, bu uyarıyı aldıysanız ve çalışma zamanı kitaplıklarının hata ayıklama olmayan DLL sürümünü kullanan bir yürütülebilir dosya oluşturmak istiyorsanız, bağlayıcı ile aşağıdaki seçenekleri kullanabilirsiniz:
/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin