MSB8042 tanılama kodu

Bu makalede MSB8042 hata kodu açıklanmaktadır.

İleti metni

MSB8042: ATL or MFC libraries with Spectre Mitigations are required for this project. Install them from the Visual Studio installer (Individual components tab) for any toolsets and architectures being used. Learn more: https://aka.ms/Ofhn4c.

Açıklama

Bu hata, Spectre azaltılmış kitaplıklar gerektiren bir Microsoft Foundation Sınıfları (MFC) veya Etkin Şablon Kitaplığı (ATL) projesinde oluşur (C/C++>Spectre AzaltmaDevre Dışı olarak ayarlanmamıştır), ancak kitaplıklar yüklenmez.

Çözüm

İlk olarak Spectre azaltmayı uygulamak isteyip istemediğinizi belirleyin ve ardından hatayı gidermek için yüklemenizi güncelleştirmek için gerekli adımları izleyin.

Spectre azaltmayı devre dışı bırak

Spectre azaltmayı kullanmak istemiyorsanız Visual Studio'da seçeneği devre dışı bırakın. Komut satırı derlemeleri için /Qspectre, /Qspectre-load veya /Qspectre-load-cf derleyici seçeneklerinden herhangi birini kullanmadığınızı onaylayın.

Visual Studio'da seçeneği devre dışı bırakmak için şu adımları izleyin:

  1. Çözüm Gezgini'nde proje düğümüne sağ tıklayın ve Özellikler (Alternatif+Enter) seçeneğini belirleyin.
  2. Projenizin Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri>C/C++>Kod Oluşturma özellik sayfasını seçin.
  3. Spectre Mitigations özelliğini Devre Dışı olarak ayarlayın.
  4. Değişikliklerinizi kaydetmek için Tamam'ı seçin.

Visual Studio'da Spectre azaltmalarının nasıl devre dışı bırakıldığını gösteren ekran görüntüsü.

Spectre azaltmayı etkinleştirme

Spectre azaltmayı kullanmaya karar verirseniz, yüklemenizin Spectre azaltma desteğine sahip doğru derleyici ve kitaplık bileşenlerini içerdiğinden emin olun.

Yüklemenizi güncelleştirmek için şu adımları izleyin:

  1. Visual Studio Yükleyicisi'ni açın.
  2. Kullandığınız Visual Studio sürümünün yanındaki Değiştir düğmesini seçin.
  3. Pencerenin üst kısmındaki Tek tek bileşenler sekmesini seçin.
  4. Bileşen ara kutusuna Spectre v14.2 girin.
  5. Derleyici, derleme araçları ve çalışma zamanı kitaplıkları bölümünde, derleme hedeflerinin tüm mimarileri için MSVC v142... Spectre hafifletmeli kütüphaneler seçeneğinin seçili olduğundan emin olun.
  6. ATL veya MFC kullanmak için, derleme hedeflerinin tüm mimarileri için Spectre Risk Azaltmaları içeren C++ MFC gibi kitaplıkları ve en son v142 derleme araçlarını (veya derleme araçlarınızın uygun sürümünü) seçin. Daha fazla bilgi için bkz . MFC ve ATL kitaplıklarını yükleme.
  7. Seçili bileşenleri yüklemek için Değiştir'i seçin.

Spectre risk azaltma kitaplığını içerecek şekilde yüklemenin nasıl güncelleştirildiğini gösteren ekran görüntüsü.

Derleyici seçeneklerini belirtme

Spectre azaltmalarını etkinleştirirseniz bir /Qspectre derleyici seçeneği belirttiğinizden emin olun. Daha fazla bilgi için /Qspectre derleyici seçeneğine bakın.

Derleyici seçeneğini belirtmek /Qspectre için şu adımları izleyin:

  1. Çözüm Gezgini'nde proje düğümüne sağ tıklayın ve Özellikler (Alternatif+Enter) seçeneğini belirleyin.

  2. Projenizin Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri>C/C++>Kod Oluşturma özellik sayfasını seçin.

  3. Spectre Mitigations özelliğini aşağıdaki değerlerden birine ayarlayın:

  4. Değişikliklerinizi kaydetmek için Tamam'ı seçin.

Şunun için geçerlidir:

MSBuild'in tüm sürümleri