Aracılığıyla paylaş


MSB8040 tanılama kodu

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

İleti metni

MSB8040: Spectre-mitigated libraries are required for this project.

Açıklama

Bu hata, proje Spectre-mitigated kitaplıkları gerektirdiğinde (C/C++>Spectre Risk Azaltmadevre dışı olarak ayarlanmamıştır) ancak kitaplıklar yüklenmediğinde oluşur. Daha fazla bilgi için bkz. Microsoft Foundation Sınıflarında (MFC) Spectre azaltmaları.

Çö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ırakma

Spectre azaltmayı kullanmak istemiyorsanız Visual Studio'da seçeneği devre dışı bırakın. Komut satırı derlemeleri için, /Qspectre derleyici seçeneğini veya onun varyasyonları olan /Qspectre-load ve /Qspectre-load-cf seçeneklerini 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ı bölümünde, derleme hedeflerinin tüm mimarileri için MSVC v142… Spektrum-kuşatılmış kitaplıklar seçeneğinin seçili olduğundan emin olun.
  6. ATL veya MFC'yi kullanmak için, derleme hedeflerindeki tüm mimariler için, araç takımınızın uygun sürümüne sahip olan Spectre Azaltmaları içeren en son v142 derleme araçları için C++ MFC gibi kütüphaneleri de 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