Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
- Çözüm Gezgini'nde proje düğümüne sağ tıklayın ve Özellikler (Alternatif+Enter) seçeneğini belirleyin.
- Projenizin Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri>C/C++>Kod Oluşturma özellik sayfasını seçin.
- Spectre Mitigations özelliğini Devre Dışı olarak ayarlayın.
- Değişikliklerinizi kaydetmek için Tamam'ı seçin.
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:
- Visual Studio Yükleyicisi'ni açın.
- Kullandığınız Visual Studio sürümünün yanındaki Değiştir düğmesini seçin.
- Pencerenin üst kısmındaki Tek tek bileşenler sekmesini seçin.
- Bileşen ara kutusuna Spectre v14.2 girin.
- 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.
- 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.
- Seçili bileşenleri yüklemek için Değiştir'i seçin.
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:
Çözüm Gezgini'nde proje düğümüne sağ tıklayın ve Özellikler (Alternatif+Enter) seçeneğini belirleyin.
Projenizin Özellik Sayfaları iletişim kutusunda Yapılandırma Özellikleri>C/C++>Kod Oluşturma özellik sayfasını seçin.
Spectre Mitigations özelliğini aşağıdaki değerlerden birine ayarlayın:
- Etkinleştirildi
- /Qspectre-load için tüm yükler
- /Qspectre-load-cf için Tüm Denetim Akışı Yükleri
Değişikliklerinizi kaydetmek için Tamam'ı seçin.
Şunun için geçerlidir:
MSBuild'in tüm sürümleri