Aracılığıyla paylaş


Bağlayıcı Araçları Hatası LNK2038

'name' için uyuşmazlık algılandı: 'value_1' değeri filename.obj 'value_2' değeriyle eşleşmiyor

Bağlayıcı tarafından bir sembol uyuşmazlığı algılandı. Bu hata, bir uygulamanın kitaplıklar veya uygulamanın bağlantı yaptığı diğer nesne kodu gibi farklı bölümlerinin simgenin çakışan tanımlarını kullandığını gösterir. Uyuşmazlığı algılama pragması, bu tür simgeleri tanımlamak ve çakışan değerlerini algılamak için kullanılır.

Olası nedenler ve çözümler

Projenizdeki bir nesne dosyası güncel olmadığında bu hata oluşabilir. Bu hatanın diğer çözümlerini denemeden önce, nesne dosyalarının güncel olduğundan emin olmak için temiz bir derleme gerçekleştirin.

Visual Studio, uyumsuz kodun bağlanmasını önlemek için aşağıdaki simgeleri tanımlar ve bu durum çalışma zamanı hatalarına veya diğer beklenmeyen davranışlara neden olabilir.

  • _MSC_VER Bir uygulama veya kitaplık oluşturmak için kullanılan Microsoft C++ derleyicisinin (MSVC) birincil ve ikincil sürüm numaralarını gösterir. MSVC'nin bir sürümü kullanılarak derlenen kod, farklı ana ve ikincil sürüm numaralarına sahip bir sürüm kullanılarak derlenen kodla uyumlu değildir. Daha fazla bilgi için bkz _MSC_VER . Önceden Tanımlanmış Makrolar.

    Kullandığınız MSVC sürümüyle uyumlu olmayan bir kitaplığa bağlanıyorsanız ve kitaplığın uyumlu bir sürümünü edinemiyor veya oluşturamıyorsanız, projenizi derlemek için derleyicinin önceki bir sürümünü kullanabilirsiniz: projenin Platform Araç Takımı özelliğini önceki araç takımıyla değiştirin. Daha fazla bilgi için bkz . Nasıl yapılır: Hedef Çerçeveyi ve Platform Araç Takımını Değiştirme.

  • _ITERATOR_DEBUG_LEVEL C++ Standart Kitaplığı'nda etkinleştirilen güvenlik ve hata ayıklama özelliklerinin düzeyini gösterir. Bu özellikler, belirli C++ Standart Kitaplığı nesnelerinin gösterimini değiştirebilir ve böylece bunları farklı güvenlik ve hata ayıklama özellikleri kullananlarla uyumsuz hale getirir. Daha fazla bilgi için bkz . _ITERATOR_DEBUG_LEVEL.

  • RuntimeLibrary Bir uygulama veya kitaplık tarafından kullanılan C++ Standart Kitaplığı ve C çalışma zamanının sürümünü gösterir. C++ Standart Kitaplığı'nın veya C çalışma zamanının bir sürümünü kullanan kod, farklı bir sürüm kullanan kodla uyumsuzdur. Daha fazla bilgi için bkz . /MD, /MT, /LD (Çalışma Zamanı Kitaplığını Kullanma).

  • _PPLTASKS_WITH_WINRTParalel Desen kitaplığını (PPL) kullanan kodun ,/ZW derleyici seçeneği için farklı bir ayar kullanılarak derlenen nesnelere bağlandığını gösterir. (/ZW C++/CX'i destekler.) PPL kullanan veya ppl bağımlı kod, uygulamanın geri kalanında kullanılan aynı /ZW ayar kullanılarak derlenmelidir.

Bu simgelerin değerlerinin Visual Studio çözümünüzdeki projeler genelinde tutarlı olduğundan ve uygulamanızın bağlantı sağladığı kod ve kitaplıklarla tutarlı olduğundan emin olun.

Üçüncü taraf kitaplık sorunları ve vcpkg

Derlemenizin bir parçası olarak üçüncü taraf kitaplığını yapılandırmaya çalışırken bu hatayı görürseniz, kitaplığı yüklemek ve derlemek için bir C++ paket yöneticisi olan vcpkg kullanmayı göz önünde bulundurun. vcpkg, büyük ve büyüyen bir üçüncü taraf kitaplık listesini destekler ve projenizin bir parçası olarak başarılı derlemeler için gereken tüm yapılandırma özelliklerini ve bağımlılıklarını ayarlar.

Ayrıca bkz.

Bağlayıcı Araçları Hataları ve Uyarıları